C ++ 0x和C ++ 11有什么区别?

时间:2012-03-02 18:46:05

标签: c++ c++11

我在SO上看到这两个术语混合使用。

Wikipedia says

  

C ++ 11,以前也称为C ++ 0x ...

但我不确定原因。

  • 为什么它首先被称为C ++ 0x然后是C ++ 11?
  • 此外,x代表什么?我猜 - 就像一个变量?

4 个答案:

答案 0 :(得分:80)

C ++和C标准通常以它们发布的年份命名,这样可以更容易记住。

例如,在C ++中,最初的标准版于1998年发布,所以我们讨论C ++ 98,当我们参考2003年发布的第一次修正时,我们讨论C ++ 03。

有人声称下一个标准将在2008年完成,但由于它不确定,它被称为C ++ 0x,其中x代表8或9.实际上,众所周知,规划发生了变化,因此我们最终得到了C ++ 11。

不过,对于下一个版本(C ++ 1x),Bjarne Stroustrup表示他打算在5年内完成这项工作(2016年左右)。目前,核心语言(概念,模块和垃圾收集)都有所改变,重点似乎更多的是扩展库(例如文件系统),但它还为时尚早,所以谁知道呢!

答案 1 :(得分:22)

C ++ 0x是标准在发布/最终确定之前的名称。一旦完成(在2011年),我们能够正确命名。也就是说,C ++ 11。

答案 2 :(得分:3)

当新标准开始工作时,在1998年左右,没有人知道它将在哪一年完成 - 所以“x”代表未知的一年,并希望它将在十年内完成左右。

最后,它于2011年完成,因此该标准现在通俗地称为C ++ 11,正式称为ISO / IEC 14882:2011。

既然该标准是正式的,那么下一步工作仍在继续;再一次,没有人知道什么时候会这样做,但它希望它不会花费不到十年的时间,所以它通俗地称为C ++ 1x。

答案 3 :(得分:2)

由于该标准计划在200x中发布/批准,但实际上已在2011中获得批准。