我正在阅读Mozilla's C++ portability guide,其中一条建议指出:
不要将初始化程序列表与对象一起使用
非可移植示例(至少,这曾经是非便携式的,因为HP-UX!):
SubtlePoint myPoint = {300, 400};
在这一点上,这更像是一种风格,但为什么不挥霍并让自己成为一个好的构造函数呢?
我非常好奇这条线" 非便携式示例(至少,这曾经是非便携式的,因为HP-UX!)"。为什么初始化程序列表是不可移植的,在什么意义上?他们现在可以安全使用吗? HP-UX 一词是指什么?
答案 0 :(得分:6)
为什么初始化程序列表是不可移植的?在什么意义上?
您引用的指南意味着它们不是/不可移植的,因为它们在HP-UX中不起作用。由于标准很好地定义了使用带有对象的初始化列表,这意味着HP-UX中使用的编译器不符合它。本指南未指定 在HP-UX中如何中断。
HP-UX指的是什么?
现在使用它们是否安全?
如果您不需要支持HP-UX或其他不符合标准的系统,那么它就非常安全。
“至少,此以前非便携式”可能是由于Mozilla不再正式支持其在HP-UX上的新版本产品,或者是新版本HP-UX上的编译器版本现在符合要求。这只是我的推测。