更新-2012年3月2日 : 基于范围的for loop和override/final v1.0已经在VC11 Beta中实现。
有一个新的C++标准和一个新的Visual C++版本,现在是时候揭示我们前面实现的那些特性了!
术语注释 在其发展过程中,新的C++标准被(乐观地)称为C++ +0x。 它终于在2011出版,现在被称为C++ 11。 (即使是国际标准也会错过发布日期。) 最终的国际标准草案不再公开。 紧接着是一份工作文件 编号3242 ,内容相当接近。 (大多数关心这些差异的人都是已经可以访问fdi的编译器/标准库开发人员。) 最后,我希望C++ 11标准可以从ANSI中获得,就像C++ 03一样。
至于Visual C++,它有三个不同的版本号,以获得最大乐趣。 有品牌版本(打印在框中)、内部版本(显示在“关于帮助”中)和编译器版本(由cl.exe和 _理学硕士 宏-这是不同的,因为我们的C++编译器早于VisualC++中的“Visual”。 例如:
VS 2005==VC8==u MSCu版本1400 VS 2008==VC9==u MSC版本1500 VS 2010==VC10==u MSCu版本1600
新版本的最终品牌尚未公布;现在,我应该说“VisualC++中的Visual Studio 11开发者预览”。 在内部,它只是VC11,它的 _理学硕士 宏是1700。 (希望针对不同主要版本的VC并为其发出不同代码的人对该宏很感兴趣。) 我之所以说VC10和VC11,是因为它们既漂亮又简单,VC11中的11并不代表一年。 (VS2010==VC10是一个令人困惑的巧合。)
如果你阅读 VC++中的C++ 0x核心语言特性:表 去年,下表对你来说会很熟悉。 这一次,我又开始使用GCC的表,但为了提高准确性和清晰度,我对它进行了更广泛的重新组织(因为许多特性都经过了重大的修改):
C++ 11核心语言特点 | VC10型 | VC11型 |
R值引用 第0.1版 , 1.0版 , 版本2.0 , 版本2.1 , 3.0版 | 版本2.0 | 版本2.1* |
ref限定符 | 不 | 不 |
非静态数据成员初始值设定项 | 不 | 不 |
可变模板 第0.9版 , 1.0版 | 不 | 不 |
初始值设定项列表 | 不 | 不 |
静态u断言 | 是的 | 是的 |
汽车 第0.9版 , 1.0版 | 1.0版 | 1.0版 |
尾随返回类型 | 是的 | 是的 |
兰巴斯 第0.9版 , 1.0版 , 1.1版 | 1.0版 | 1.1版 |
脱模 1.0版 , 1.1版 | 1.0版 | 1.1版** |
右尖括号 | 是的 | 是的 |
函数模板的默认模板参数 | 不 | 不 |
表达SFINAE | 不 | 不 |
别名模板 | 不 | 不 |
外部模板 | 是的 | 是的 |
空PTR | 是的 | 是的 |
强类型枚举 | 部分 | 是的 |
转发声明的枚举 | 不 | 是的 |
属性 | 不 | 不 |
c |