std::nullptr_t – cppreference.com
Z cppreference.com
<tbody> </tbody>
|
|
(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] |