Difference between revisions of "cpp/language/nullptr"
From cppreference.com
(Add references to C++ standard) |
(It's the "pointer literal", see [lex.nullptr]. And what's unspecified about it?) |
||
Line 1: | Line 1: | ||
− | {{title|nullptr pointer literal}} | + | {{title|nullptr, the pointer literal}} |
{{cpp/language/expressions/navbar}} | {{cpp/language/expressions/navbar}} | ||
Line 8: | Line 8: | ||
===Explanation=== | ===Explanation=== | ||
− | The keyword {{tt|nullptr}} denotes the | + | The keyword {{tt|nullptr}} denotes the pointer literal. It is a [[cpp/language/value_category|prvalue]] of type {{lc|std::nullptr_t}}. There exist {{rlp|implicit_cast|implicit conversions}} from {{tt|nullptr}} to null pointer value of any pointer type and any pointer to member type. Similar conversions exist for any null pointer constant, which includes values of type {{lc|std::nullptr_t}} as well as the macro {{lc|NULL}}. |
===Example=== | ===Example=== |
Revision as of 21:49, 20 May 2015
Contents |
Syntax
nullptr
|
(since C++11) | ||||||||
Explanation
The keyword nullptr
denotes the pointer literal. It is a prvalue of type std::nullptr_t. There exist implicit conversions from nullptr
to null pointer value of any pointer type and any pointer to member type. Similar conversions exist for any null pointer constant, which includes values of type std::nullptr_t as well as the macro NULL.
Example
Demonstrates how nullptr allows forwarding via a template function.
Run this code
Output:
Function g called Function g called Function g called
Keywords
See also
implementation-defined null pointer constant (macro constant) | |
(C++11) |
the type of the null pointer literal nullptr (typedef) |
References
- C++11 standard (ISO/IEC 14882:2011):
- 4.10 Pointer conversions [conv.ptr]