今天试用了一下C++0X,在此水一下.
Windows下想用C++0X的,
安装最新的MinGW(4.6),http://sourceforge.net/projects/mingw/files/
然后在你的IDE里选用MinGW,设置一下编译器选项即可.
这是codeblocks里的选项:
不过windows下面貌似0X还不直接支持多线程,要自己搞搞才行(boost或...),如果你乐意搞的话.
1,类型推导:
在标准 C++(和 C,两者都是强类型),使用变量必须明确的指出其型别。
但如果 ??? x = (a long expression even with the advent of template types )
???上要填的类型就不容易搞清楚了.
C++0X提供了auto 关键字, 这会依据该初始化子(initializer)的具体型别产生变量.
以前的C++也有一个auto关键字的,但是意义不同,而且原来的auto使用价值不大.
另外还有decltype,功能就是编译期决定一个表示式的型别(一些托管语言中有实现)
这有点符合DRY原则的意味.
2,以范围为基础的for循环
如果不带&,那么语句2不会对my_array元素进行修改,原因你懂的.
还有一个for_each,在algorithm库里面.
简化了一点编程,语法糖.
3,匿名函数与表达式
如果看过python(或是haskell),这个概念就很容易理解了.
使用局部定义的函数,程序可以写得更简单,但是C++中的lambda远没有Haskell强大.
用于find,sort,for_each等里面.
4,变长参数模板
允许任意个数、任意类别的模板实参,不必在定义时将实参的个数固定。
变长参数可以避免很多重复代码.
水文一篇,就写这4个.
如果您对C++0X的特性感兴趣的话,下面的链接估计会让您满意.
中文wiki:http://zh.wikipedia.org/wiki/C%2B%2B11
英文wiki:http://en.wikipedia.org/wiki/C%2B%2B11
漫话C++0X:http://blog.csdn.net/pongba/article/category/158724