std::nullptr_t
Z cppreference.com
< cpp
<tbody>
</tbody>
| Zdefiniowane w nagłówku <cstddef>
|
||
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) |
| stała, oznaczająca pusty wskaźnik (zależna od implementacji) (stała [makro]) | |
(C++14) |
sprawdza, czy dany typ to std::nullptr_t (szablon klasy) |