C++11标准正式通过,正式发布也指日可待,VS和GCC都已经为C++11标准提前做好了部分准备(有些标准仍旧为支持),希望新的标准能够得到完美的支持(比如C++03标准中的分离模板定义到现在大部分编译器也没有很好的支持,export关键字也就废了)。个人认为C++11标准中基本原则中的核心是:
- 维持与C++原有标准和C99标准的兼容
- 通过扩展标准库,而不是修改核心语法
我根据自己的理解分别从不同的角度去分解新的标准,并且分为了核心语法和库两篇来分别来去解读新的C++11标准。个人理解能力有限存在一些问题,期待大家能够指正。
一、纵向视角
1 对类型的增强
1.1POD定义修改
1.2自动推导auto和decltype
1.3空指针nullptr
1.4强枚举enum class
1.5增强的union
1.6long long
1.7右值引用std::move()
2 对函数的增强
2.1新函数语法
2.2lambda表达式
3 对类的增强
3.1统一的初始化
3.2初始化列表std::initalizer_list<>
3.3构造函数继承
3.4成员变量的初始化
3.5显示重载
3.6禁用和默认函数
4 对模板的增强
4.1模板别名
4.2外部模板
4.3变长模板
5 编译器增强
5.1 >>不再是问题