什么是c ++ 0x的官方名称?

And*_*hko 7 c++ c++11

据我所知,今年应该接受标准.那么,它会是c ++ 11吗?

Joh*_*ing 11

[ED:由于这个问题被问到,C++标准已经发布.在我的回答中,我已经将过去时态改为现在时,并对自释放以来澄清的事情进行了详细阐述.

根据标准的语言名称是C++.为了区别于标准的其他版本,它有时称为C++ 11,但这不是它的正式名称.以前的版本通常被称为C++ 03或C++ 98,但在StackOverflow上的转换中,"C++"本身通常意味着当前版本的C++,无论发生什么.

C++ 0x只是一个占位符标识符,用于在发布之前引用标准的预发布版本,以便将其与其他版本区分开来.今天我们有一个新版本正在讨论; 该版本目前被称为C++ 1y.

关于0x部分,这就是Bjarne Stroustrup所说的:

新标准很可能被称为C++ 11,但即使是较小的bureacratic延迟也可能成为C++ 12.就个人而言,我更喜欢普通的C++,只有当我需要将它与以前的C++版本区分开来时才使用年份标记,例如ARM C++,C++ 98和C++ 03.现在,我倾向于约定,仍然使用C++ 0x作为下一个版本.将'x'视为十六进制.

在SO上发布时,它通常被称为C++ 11.当只使用C++标签而没有任何消歧(例如C++ 11或C++ 03标签)时,会引起一些关于C++标准版本的混淆,但通常认为C++标签是指到目前的版本.在撰写本文时,那是C++ 11.

  • 是的,但它可能需要很多年才能成为"C++",我们现在将C++称为C++ 03,就像我们明确地引用C++ 98一样. (3认同)
  • @DeadMG:这在很大程度上取决于上下文.在stackoverflow和comp.lang.c ++上,也许就在附近.在我的工作场所,我确信至少在我们被允许使用任何新的语言/库功能之前一年,因为我们不经常切换编译器版本. (3认同)
  • @John:看到詹姆斯的回答.C++ 0x不是**口语**标识符; 它是**占位符**标识符.C++是一个**口语**名称,意思是C++ 98,C++ 03或C++ 0x,类似于"C",是C89,C90或C99的**俗名**.(ps,你可能是一个*更小的病人...) (2认同)