转载请注明来源:http://blog.csdn.net/thesys/archive/2010/06/02/5641338.aspx
c++0x是下一代c++标准,原计划于2010前推出,所以命名为c++0x(比如c++09),现在已经2010年了,都还没有最终定稿,因此我们只能无奈地认为这0x代表的是16进制了,也暗合c/c++中0x代表16进制前缀的习惯,不过如果2015年还没搞定的话,就不知道可以怎么解释了。
c++0x应该说对现行c++标准的改变很大,增加了很多新特性,十分令人期待,之前我也花了不少时间来学习和了解。最近vc10和gcc4.5都release了,而这两个重要的c++编译器都部分支持了c++0x标准,因此给了我们更好的尝试和探索的机会,接下来我计划对c++0x标准进行一系列更多的学习和探索,看看我们能用新特性来干什么,以及它能给我们的工作带来多少改进。
这里先简单罗列一下c++0x标准的新特性,以及vc和gcc对它们的支持,以便接下来做逐一的学习和探索。
下面的表格来自http://gcc.gnu.org/projects/cxx0x.html,在原始版本的基础上,我做了一点点修改,把VC的支持给标注出来。
Language Feature | Proposal | Available in GCC and VC |
---|---|---|
Rvalue references | N2118 | GCC4.3, VC10 |
Rvalue references for *this |
N2439 | No |
Initialization of class objects by rvalues | N1610 | GCC4.4, VC10 |
Non-static data member initializers | N2756 | No |
Variadic templates | N2242 | GCC4.3 |
Extending variadic template template parameters | N2555 | GCC4.4 |
Initializer lists | N2672 | GCC4.4 |
Static assertions | N1720 | GCC4.3,VC10 |
auto -typed variables |