|
关键字 nullptr 指定类型 std::nullptr_t 的 null 指针常量,该类型可转换为任何原始指针类型。 尽管可以使用关键字 nullptr 而不包含任何标头,但如果代码使用类型 std::nullptr_t,则必须通过包含标头 <cstddef> 来定义该类型。
备注
用于托管代码应用程序的 C++/CLI 中也定义了 nullptr 关键字,并且它与 ISO 标准 C++ 关键字不可互换。 如果可以使用 /clr 编译器选项(以托管代码为目标)编译代码,则在必须保证编译器使用本机 C++ 解释的任何代码行中使用 __nullptr。 有关详细信息,请参阅 nullptr(C++/CLI 和 C++/CX)。
备注
请避免将 NULL 或零 (0) 用作 null 指针常量;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>,此结果不可转换为 func 的 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>。
|
|