Namespaces
Variants
Views
Actions

nullptr pointer literal

From cppreference.com
< cpp‎ | language
Revision as of 21:39, 9 June 2014 by Ruslo (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Contents

[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)
{
    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 called

[edit] Keywords

nullptr

[edit] See also

implementation-defined null pointer constant
(macro constant) [edit]
(C++11)
the type of the null pointer literal nullptr
(typedef) [edit]

[edit] References

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