the pointer literal
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.
#include <cstddef>
#include <iostream>
 
template<class F, class A>
void Fwd(F f, A a)
{
    f(a);
}
 
void g(int* i)
{
    std::cout << "Function g called\n";
}
 
int main()
{
    g(NULL);           // Fine
    g(0);              // Fine
 
    Fwd(g, nullptr);   // Fine
//  Fwd(g, NULL);  // ERROR: No function g(int)
}Output:
Function g called
Function g called
Function g calledKeywords
nullptr.
See also
NULL  | implementation-defined null pointer constant (macro constant)  | 
|---|---|
nullptr_t (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
 
 
 © cppreference.comLicensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

