在线文档教程
C++
语言 | Language

the pointer literal

nullptr, 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 called

Keywords

nullptr.

See also

NULLimplementation-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):

© cppreference.com

Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.

http://en.cppreference.com/w/cpp/language/nullptr