Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The latest version of this topic can be found at nullptr.
Designates a null pointer constant of type std::nullptr_t
, which is convertible to any raw pointer type. Although you can use the keyword nullptr
without including any headers, if your code uses the type std::nullptr_t
, then you must define it by including the header <cstddef>
.
Note
The nullptr
keyword is also defined in C++/CLI for managed code applications and is not interchangeable with the ISO Standard C++ keyword. If your code might be compiled by using the /clr compiler option, which targets managed code, then use __nullptr
in any line of code where you must guarantee that the compiler uses the native C++ interpretation. For more information, see nullptr.
Remarks
Avoid using NULL
or zero (0
) as a null pointer constant; nullptr
is less vulnerable to misuse and works better in most situations. For example, given func(std::pair<const char *, double>)
, then calling func(std::make_pair(NULL, 3.14))
causes a compiler error. The macro NULL expands to 0
, so that the call std::make_pair(0, 3.14)
returns std::pair<int, double>
, which is not convertible to func()'s std::pair<const char *, double>
parameter type. Calling func(std::make_pair(nullptr, 3.14))
successfully compiles because std::make_pair(nullptr, 3.14)
returns std::pair<std::nullptr_t, double>
, which is convertible to std::pair<const char *, double>
.