包含对象的初始值设定项列表不可移植
initializer lists with objects is non-portable?
我正在阅读Mozilla的C++可移植性指南,其中一条建议指出:
不要对对象使用初始值设定项列表
非可移植示例(至少,这曾经是不可移植的,因为 HP-UX!
SubtlePoint myPoint = {300, 400};
在这一点上,这更像是一种风格的东西,但为什么不挥霍并为自己找一个漂亮的构造函数呢?
我对这行"非便携式示例(至少,这曾经是不可移植的,因为 HP-UX!".为什么初始值设定项列表是不可移植的,在什么意义上?它们现在使用安全吗?HP-UX一词指的是什么?
为什么初始值设定项列表是不可移植的,在什么意义上
?
您引用的指南暗示它们不是/不是便携式的,因为它们在 HP-UX 中不起作用。由于将初始值设定项列表与对象一起使用是由标准明确定义的,这意味着 HP-UX 中使用的编译器不符合它。该指南没有具体说明它在 HP-UX 中是如何中断的。
HP-UX一词指的是什么?
它是一个操作系统。
它们现在使用安全吗?
如果您不需要支持 HP-UX 或其他不符合标准的系统,那么它是并且一直是完全安全的。
"至少,这曾经是不可移植的"可能是由于Mozilla不再正式支持HP-UX上的新版本产品,或者HP-UX上的新版本编译器现在符合要求。这只是我的猜测。
相关文章:
- C++Union/Struct位域的实现和可移植性
- 具有Qt事件循环的可移植通用共享库设置
- 没有执行策略的 std::transform_reduce 是可移植的吗?
- 如何在 c++ 中正确指定 #include 路径以使程序可移植
- 创建异构顶点数据数组的可移植方法
- FlatBuffers/Protobuf 中是否有支持任意 24 位有符号整数定义的可移植二进制序列化架构?
- 静态库可移植性
- 从非类型模板参数声明 constexpr 数组的可移植方法
- C++:Unicode 字符串文字的可移植性
- 如何使Visual Studio 2017 C++项目在计算机之间更具可移植性
- 尝试将 sfml 和 c++ 与 Windows 10 上的可移植 vscode 链接起来
- 在C++中获取命名空间名称的任何可移植技巧
- STR这个实现是否安全且可移植?
- 编写 std::copysign 的可移植 SSE/AVX 版本
- 是可移植的包装结构
- 将参数推送到调用堆栈 (C++) 的可移植方法
- 在为视频游戏实施基本的二进制序列化时,请担心可移植性
- 如何以可移植方式删除名称为 wchar_t 类型的文件C++
- Xcode 8.3.2 中的错误警告:文件的非可移植路径 - 指定的路径与磁盘上的文件名不同
- C++中是否有所有不同整数类型的完整且可移植的列表