std::nullptr_t
STD::nullptr[医]T型
Defined in header | | |
---|---|---|
typedef decltype(nullptr) nullptr_t; | | (since C++11) |
std::nullptr_t
为空指针文字的类型,nullptr
它本身不是指针类型或成员类型的指针。
例
如果两个或多个重载接受不同的指针类型,则std::nullptr_t
必须接受空指针参数。
二次
#include <cstddef>
#include <iostream>
void f(int* pi)
{
std::cout << "Pointer to integer overload\n";
}
void f(double* pd)
{
std::cout << "Pointer to double overload\n";
}
void f(std::nullptr_t nullp)
{
std::cout << "null pointer overload\n";
}
int main()
{
int* pi; double* pd;
f(pi
f(pd
f(nullptr // would be ambiguous without void f(nullptr_t)
// f(NULL // ambiguous overload: all three functions are candidates
}
二次
产出:
二次
Pointer to integer overload
Pointer to double overload
null pointer overload
二次
另见
nullptr | the pointer literal which specifies a null pointer value (C++11) |
---|---|
NULL | implementation-defined null pointer constant (macro constant) |
is_null_pointer (C++14) | checks if a type is std::nullptr_t (class template) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。