nullptr pointer literal

< cpp‎ | language


[edit] Syntax

nullptr (since C++11)

[edit] Explanation

The keyword nullptr denotes the null pointer literal. It is an unspecified 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 value of type std::nullptr_t as well as for the macro NULL, the null pointer constant.

[edit] 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)
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)


Function g called
Function g called
Function g called

[edit] Keywords


[edit] See also

implementation-defined null pointer constant
(macro constant)
the type of the null pointer literal nullptr

[edit] References

  • C++11 standard (ISO/IEC 14882:2011):
  • 4.10 Pointer conversions [conv.ptr]