首页 > 基础知识 > 正文

c++11新特性

标签:c++11


目录

参考: C++11新特性

英文维基百科: c++11 中文维基百科:c++11

0. 简介

C++11,之前被称作C++0x,即ISO/IEC 14882:2011,是目前的C++编程语言的正式标准。它取代第二版标准ISO/IEC 14882:2003(第一版ISO/IEC 14882:1998发布于1998年,第二版于2003年发布,分别通称C++98以及C++03,两者差异很小)。新的标准包含了几个核心语言增加的新特性,而且扩展C++标准程序库,并入了大部分的C++ Technical Report 1程序库(数学的特殊函数除外)。最新的消息被公布在 ISO C++ 委员会网站(英文)。 ISO/IEC JTC1/SC22/WG21 C++ 标准委员会计划在2010年8月之前完成对最终委员会草案的投票,以及于2011年3月召开的标准会议完成国际标准的最终草案。然而,WG21预期ISO将要花费六个月到一年的时间才能正式发布新的C++标准。为了能够如期完成,委员会决定致力于直至2006年为止的提案,忽略新的提案。最终,于2011年8月12日公布,并于2011年9月出版。2012年2月28日的国际标准草案(N3376)是最接近于现行标准的草案,差异仅有编辑上的修正。 像C++这样的编程语言,通过一种演化的过程来发展其定义。这个过程不可避免地将引发与现有代码的兼容问题。不过根据Bjarne Stroustrup(C++的创始人,标准委员会的一员)表示,新的标准将几乎100%兼容现有标准。

1. 核心语言的运行期表现强化

提升某些性能表现,例如内存或是速度上的表现。

1.1 右值引用和move语义

1.2 constexpr – 泛化的常量表示式

1.3 对POD定义的修正

2. 核心语言构造期表现的加强

2.1 外部模板

3. 核心语言使用性的加强

3.1 初始化列表

3.2 统一的初始化

3.3 类型推导

3.4 基于范围的for循环

3.5 Lambda函数与表示式

3.6 回返类型后置的函数声明

3.7 对象构造的改良

3.8 显式虚函数重载

3.9 空指针

3.10 强类型枚举

3.11 角括号

3.12 显式类型转换子

3.13 模板的别名

3.14 无限制的unions

4. 核心语言能力的提升

4.1 可变参数模板

4.2 新的字符串字面值

4.3 用户定义字面量

4.4 多任务内存模型

4.5 thread-local的存储期限

4.6 使用或禁用对象的默认函数

4.7 long long int类型

4.8 静态assertion

4.9 允许sizeof运算符作用在类别的数据成员上,无须明确的对象

4.10 垃圾回收机制

5. C++标准程序库的变更

5.1 标准库组件上的升级

5.2 线程支持

5.3 多元组类型

5.4 散列表

5.5 正则表达式

5.6 通用智能指针

5.7 可扩展的随机数功能

5.8 包装引用

5.9 多态函数对象包装器

5.10 用于元编程的类型属性

5.11 用于计算函数对象回返类型的统一方法

5.12 iota 函数


原创文章,转载请注明出处!
本文链接:http://hxhlwf.github.io/posts/knowledge-c++11.html
上篇: deep & cross network for ad click predictions
下篇: irgan

comment here..