nullptr
指定类型 std::nullptr_t一个 null 指针常数,转换成任何基元的指针类型。 虽然可以使用关键字 nullptr 不包括任何标头,因此,如果您的代码使用类型 std::nullptr_t,则必须通过包括该标头定义它 <cstddef>。
备注
nullptr 关键字还在托管代码应用程序的 C++/CLI 中定义并与 ISO C++ 标准关键字不可互换。使用 /clr 编译器选项,如果您的代码可能编译,目标托管代码,则必须确保代码的任何行使用 __nullptr 编译器使用本机 C++ 解释。有关更多信息,请参见nullptr。
备注
避免使用 NULL 或零 (0) 为空指针常量;更好在大多数情况下 nullptr 不太容易受到攻击的滥用和工作。 例如命名 func(std::pair<const char *, double>),然后调用 func(std::make_pair(NULL, 3.14)) 导致编译器错误。 宏 NULL 扩展到 0,因此,调用 std::make_pair(0, 3.14) 返回 std::pair<int, double>,而不是转换为函数 () 的 std::pair<const char *, double> 参数类型。 调用 func(std::make_pair(nullptr, 3.14)) 编译成功,因为 std::make_pair(nullptr, 3.14) 返回 std::pair<std::nullptr_t, double>,转换成 std::pair<const char *, double>。