std::nullptr_t
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <cstddef> 中定义
|
||
typedef decltype(nullptr) nullptr_t; |
(C++11 起) | |
std::nullptr_t是空指针类型的文字,nullptr.
原文:
std::nullptr_t is the type of the null pointer literal, nullptr.
[编辑] 示例
如果两个或两个以上的重载接受不同的指针类型,过载std::nullptr_t是需要接受一个空指针参数.
原文:
If two or more overloads accept different pointer types, an overload for std::nullptr_t is necessary to accept a null pointer argument.
#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 | 指针常量,它指定一个空指针(C++11)
原文: the pointer literal which specifies a null pointer value (C++11) |
编译器定义的空指针常量 (常量宏) |