带对象的初始化列表是不可移植的?

时间:2016-01-28 10:32:20

标签: c++ c++11

我正在阅读Mozilla's C++ portability guide,其中一条建议指出:

  

不要将初始化程序列表与对象一起使用

     

非可移植示例(至少,这曾经是非便携式的,因为HP-UX!):

     

SubtlePoint myPoint = {300, 400};

     

在这一点上,这更像是一种风格,但为什么不挥霍并让自己成为一个好的构造函数呢?

我非常好奇这条线" 非便携式示例(至少,这曾经是非便携式的,因为HP-UX!)"。为什么初始化程序列表是不可移植的,在什么意义上?他们现在可以安全使用吗? HP-UX 一词是指什么?

1 个答案:

答案 0 :(得分:6)

  

为什么初始化程序列表是不可移植的?在什么意义上?

您引用的指南意味着它们不是/不可移植的,因为它们在HP-UX中不起作用。由于标准很好地定义了使用带有对象的初始化列表,这意味着HP-UX中使用的编译器不符合它。本指南未指定 在HP-UX中如何中断。

  

HP-UX指的是什么?

这是operating system

  

现在使用它们是否安全?

如果您不需要支持HP-UX或其他不符合标准的系统,那么它就非常安全。

至少,此以前非便携式”可能是由于Mozilla不再正式支持其在HP-UX上的新版本产品,或者是新版本HP-UX上的编译器版本现在符合要求。这只是我的推测。