C++新特性
自C11以来的一些语法糖和新特性
如题
语法糖
- 构造函数的调用。有多个构造函数时,在一个构造函数中调用另一个构造函数;
- 成员变量的定义(声明)和初始化可以写在一起了;
- 空指针推荐使用nullptr表示;
- 枚举类以enum class Name{type}形式,使用时直接使用Name::type的形式(强类型);
- 类型推导。auto,但不推荐滥用,可用于模板编程;
- constexpr,使用此声明的有参数的函数表达式可以作为数组定义的参数,将运行时的计算提前到编译时完成
- 容器初始化可采用{1,2,3}的形式,而不需要使用push_back;
- for(auto i : map)的写法;
- 智能指针。弃用auto_ptr,
//老写法
SomeData* data = new SomaData;
//新写法1
#include <memory>
unique_ptr<SomeData> data(new SomeData);
//新写法2
auto data = make_unique<SomeData>();
另外还有share_ptr等
- lambda表达式