std::nullptr_t
来自cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <cstddef>
|
||
| typedef decltype(nullptr) nullptr_t; |
(C++11 起) | |
std::nullptr_t是空指针类型的文字,nullptr.
Original:
std::nullptr_t is the type of the null pointer literal, nullptr.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 为例
如果两个或两个以上的重载接受不同的指针类型,过载std::nullptr_t是需要接受一个空指针参数.
Original:
If two or more overloads accept different pointer types, an overload for std::nullptr_t is necessary to accept a null pointer argument.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#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 }
Output:
Pointer to integer overload Pointer to double overload null pointer overload
[编辑] 另请参阅
| nullptr | 指针常量,它指定一个空指针(C++11)
Original: the pointer literal which specifies a null pointer value (C++11) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| 实现定义的空指针常量 Original: implementation-defined null pointer constant The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (宏不变) | |