◐ Shell
clean mode source ↗

std::nullptr_t – cppreference.com

Z cppreference.com

<tbody> </tbody>

typedef decltype(nullptr) nullptr_t;

(od C++11)

std::nullptr_t to typ literału pustego wskaźnika, nullptr. Jest osobnym typem, który sam w sobie nie jest typem wskaźnika ani wskaźnika do składowej.

Przykład

Jeśli dwa lub więcej przeładowania akceptują różne typy wskaźników, przeładowanie dla typu std::nullptr_t jest konieczne, żeby móc przekazać pusty wskaźnik jako argument.

#include <cstddef>
#include <iostream>

void f(int* pi)
{
   std::cout << "Przeladowanie dla wskaznika na liczbe calkowita\n";
}

void f(double* pd)
{
   std::cout << "Przeladowanie dla wskaznika na double\n";
}

void f(std::nullptr_t nullp)
{
   std::cout << "Przeladowanie dla pustego wskaznika\n";
}

int main()
{
    int* pi; double* pd;

    f(pi);
    f(pd);
    f(nullptr);  // niejednoznaczny zapis, bez void f(nullptr_t)
    // f(0);     // niejednoznaczne wywołanie: wszystkie trzy przeładowania osobno tutaj pasują
    // f(NULL);  // niejednoznaczne, jeśli NULL jest stałą pustego wskaźnika typu całkowitego 
                 // (tak jak to jest w większości implementacji)
}

Wynik:

Przeladowanie dla wskaznika na liczbe calkowita
Przeladowanie dla wskaznika na double
Przeladowanie dla pustego wskaznika

Zobacz też

nullptr literał wskaźnikowy, który oznacza pusty wskaźnik (C++11) [edit]
stała, oznaczająca pusty wskaźnik (zależna od implementacji)
(stała [makro]) [edit]
sprawdza, czy dany typ to std::nullptr_t
(szablon klasy) [edit]