技术开发 频道

Visual C++2010新特性:支持C++0x新标准

    【IT168 专稿】C++0x是C++编程语言预计的新标准的一个非正式的名称,今后会替换现有的C++标准,其中的X也会有特定的值。新版本中添加了语言核心内容和扩展的C++标准库。本文重点介绍在Visual C++ 2010中C++0x的语言特性,包含Lambda表达式、auto 关键字、static_assert 声明、右值(Rvalue)引用。

  Lambda 表达式

  很多编程语言都支持不具名函数,Lambda 表达式就是一种与不具名函数相关的编程技术。那什么是不具名函数呢?不具名函数就是只有函数体、而没有函数名的一种函数,如下图标红部分。

1
 

  在 for_each语句中,[](int n) { cout << n << " "; } 就是一个Lambda表达式,[] 操作符是 Lambda导引符, 它告诉编译器一个 Lambda表达式开始了; (int n) 是 Lambda参数声明,它告诉编译器不具名函数对象类的函数调用操作符带有哪些参数; { cout << n << " "; } 是复合声明 ,它是不具名函数对象类的函数调用操作符的函数体。不具名函数对象类的函数调用操作符默认返回 void 。

  Lambda 表达式的特性分别是简洁高效、自动推断返回类型。

  (1)简洁高效

  下面代码实现循环遍历输出vector中的每一个数。

1
 

  输出结果:

1
 

  上面两组代码实现相同的效果,通过比较我们就可以发现,Lambda表达式的语法更加简洁,使用起来更加简单高效。  

0
相关文章