问题
It seems that nullptr
is declared in the default global namespace. Wouldn't it make sense for it to be in the std
namespace?
回答1:
nullptr
is a C++11 keyword (no different to if
, public
, true
, void
, etc.), so namespaces don't apply.
回答2:
nullptr
is a pointer literal the same way as for example true
is a boolean literal. This literal has type std::nullptr_t
that is as you see this type is defined in name space std::
The pointer literal is described in section 2.14.7 Pointer literals of the C++ Standard.
来源:https://stackoverflow.com/questions/21510121/why-isnt-nullptr-in-the-std-namespace