C++ 11的几个新特性

1,range for; alto

for (const auto& agent : componentAgents_)
{
    agent->interface();
}

参见 http://www.cnblogs.com/h46incon/archive/2013/06/02/3113737.html

最新的C++标准更新了auto关键字的功能除了具有原有的含义外,还增加了一种类似其他高级语言的型别推导特性使用auto来代替变量的类型,前提是被明确类型的初始化变量初始化的,可以使用auto关键字
比如int i=10; auto a = i; //这样a也是int类型了这在使用一些模板类的时候,对于减少冗赘的代码也很有用参见 http://zhidao.baidu.com/link?url=6_MLuvtOysRI0Mar386KMVr4_akcjfecdhUkg14esU7wM7G3UAtoR5ngvT50zM5yqdjxzxWxtB6t4Isn3Zh1W_

2,Lanbda表达式

    // the type of a closure cannot be named, but can be inferred with auto
    auto func1 = [](int i) { return i+4; };
    std::cout << "func1: " << func1(6) << ‘\n‘; [ capture ] ( params ) mutable exception attribute -> ret { body }

capture 指定了在可见域范围内 lambda 表达式的代码内可见得外部变量的列表,具体解释如下:

  • [a,&b] a变量以值的方式呗捕获,b以引用的方式被捕获。
  • [this] 以值的方式捕获 this 指针。
  • [&] 以引用的方式捕获所有的外部自动变量。
  • [=] 以值的方式捕获所有的外部自动变量。
  • [] 不捕获外部的任何变量。

参见 http://www.cnblogs.com/haippy/archive/2013/05/31/3111560.html

时间: 2024-08-08 20:24:40

C++ 11的几个新特性的相关文章

ygRan Java1.0-1.11各个版本的新特性

JDK Version 1.01996-01-23 Oak(橡树) 初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢. JDK Version 1.11997-02-19 JDBC(Java DataBase Connectivity);支持内部类;RMI(Remote Method Invocation) ;反射;Java Bean;JDK Version 1.21998-12-08 Playground(操场) 集合框架;JIT(Just In Time)

iOS 11系列 - Xcode 9新特性

Xcode 9最近刚刚发布,带来了一系列不错的新特性,可以更好的帮助到开发者完成开发工作. Xcode Runtime Tool Xcode 9中有许多Runtime Tool可以帮助开发者找到代码错误,包括如下: Main Thread Checker  -  Xcode 9新引入 Address Sanitizer Thread Sanitizer Undefined Behavior Sanitizer Using Runtime Tools Effectively Main Thread

C++11的for循环新特性

在C++11中,for有了类似Java语言中的简化循环,可以用于遍历数组,容器,string等等.比如用法如下

java 11 值得关注的新特性

JEP 181: Nest-Based Access Control 基于嵌套的访问控制 JEP 309: Dynamic Class-File Constants 动态类文件 JEP 315: Improve Aarch64 Intrinsics 改进 Aarch64 的效率 JEP 318: Epsilon: A No-Op Garbage Collector 无任何操作的垃圾收集器Epsilon(实验性质) JEP 320: Remove the Java EE and CORBA Mod

【C++11】30分钟了解C++11新特性

作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 什么是C++11 C++11是曾经被叫做C++0x,是对目前C++语言的扩展和修正,C++11不仅包含核心语言的新机能,而且扩展了C++的标准程序库(STL),并入了大部分的C++ Technical Report 1(TR1)程序库(数学的特殊函数除外). C++11包括大量的新特性:包括lambda表达式,类型推导关键字auto.decl

c++11 新特性之 auto关键字

C++11是对目前C++语言的扩展和修正.C++11包括大量的新特性:包括lambda表达式,类型推导关键字auto.decltype,和模板的大量改进. g++编译c++11命令加上 -std=c++11 C++11中引入auto第一种作用是为了自动类型推导 auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型.通过auto的自动类型推导,可以简化我们的编程工作 auto实际上实在编译时对变量进行了类型推导,所以不会对程序的运行效率造成不良影响另外,似乎auto并不会影响编译速度,

c++11 新特性之 autokeyword

C++11是对眼下C++语言的扩展和修正.C++11包含大量的新特性:包含lambda表达式,类型推导keywordauto.decltype,和模板的大量改进. g++编译c++11命令加上 -std=c++11 C++11中引入auto第一种作用是为了自己主动类型推导 auto的自己主动类型推导,用于从初始化表达式中判断出变量的数据类型. 通过auto的自己主动类型推导,能够简化我们的编程工作 auto实际上实在编译时对变量进行了类型推导,所以不会对程序的执行效率造成不良影响另外,似乎aut

Java 11正式发布,这几个逆天新特性教你写出更牛逼的代码

就在前段时间,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用! 这无疑对我们来说是一大好的消息.作为一名java开发者来说,虽然又要去学习和了解java11,但内心还是欣慰的.我想至少你和我一样的心情:Java在手,天下我有! 今天我们来看一下Java 11到底是什么.他有什么特别的.到底要不要升级到Java 11. Java 11有什么特别的 在Oracle官网中,进入下载页面,第一个可供下载的JDK版本已经提换成了Java SE 11 (LTS),

C++ 学习笔记(一些新特性总结 1)

C++ 学习笔记(一些新特性总结 1) 虽然我也用了 C++ 有挺多年了,但是一直本着够用就行的原则,没有特别深入的学习过C++ 的语法,所以好多高级的 C++ 特性都不了解.正好最近从网上找到了本书<C++ 14 Quick Syntax Reference>,挺薄的一本书,只有 100多页,但是覆盖了基本所有 C++ 的特性.这个小短文就是我看这本书时摘抄下来的一些我以前没有注意到的知识点. 文中所有代码都在 gcc version 5.3.0 (Rev1, Built by MSYS2