Jackiesteed

www.github.com/jackiesteed

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

今天试用了一下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



 

 





posted on 2012-02-08 20:17  Jackiesteed  阅读(410)  评论(0编辑  收藏  举报