《C++ Primer》中文版第五版由李普曼等编著,本书PDF资源为系列中的第一部分,全面细致地介绍了C++编程语言的基础知识和核心特性。
C++11的新特性包括:
- `long long`类型(第2章)
- 列表初始化(第2.2节)
- `nullptr`常量(第3节)
- 类内初始化成员变量(第6章)
- 使用`auto`和`decltype`简化声明
- 范围for语句
- 容器的列表初始化,如vector、array等容器的支持
- `constexpr`函数与变量定义
- 尾置返回类型以及使用`decltype`
- 类内默认构造函数自动生成(通过`=default`)
- 成员类对象的类内初始化支持
- 委托构造函数及`constexpr`构造函数
- 使用string处理文件名和路径相关操作
- 新容器如array、forward_list的支持,包括列表初始化与非成员swap方法等特性
- `emplace_back`, `insert`以及其他容器插入操作返回类型改进
- shrink_to_fit优化vector大小的功能
- string对象的数值转换功能增强
- Lambda表达式及其尾置返回类型的使用
- 无序关联容器的支持,如unordered_map、unordered_set等
智能指针部分:
- 使用`shared_ptr`, `unique_ptr`, `weak_ptr`
- 动态分配时支持列表初始化和auto类型推导
- 范围for语句不能用于动态数组
拷贝控制改进:
- 默认生成的拷贝构造函数与赋值运算符
- 移动类对象代替拷贝,包括移动构造及移动赋值操作
- 引用限定成员函数支持右值引用优化
其他特性:
- 虚方法使用`override`, `final`
- 删除默认拷贝控制的支持
- 继承的构造函数
- 显式模板实例化与类型别名改进
- 可变参数模板与转发机制完善
- 标准库tuple类、bitset运算增强等功能
异常处理:
- 使用noexcept指示符和运算符
名字空间支持:
- 内联命名空间的引入
枚举扩展:
- 有作用域的enum定义及类型说明
- enum提前声明功能
其他改进:
- 成员函数指针使用`std::mem_fn`
- 类类型的联合成员支持