LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 237|回复: 0

nullptr

[复制链接]
发表于 2024-1-28 23:41:21 | 显示全部楼层 |阅读模式
关键字 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>。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表