C++ 新特性 (C++11、C++14、C++17)
配套视频课程已更新完毕,大家可通过以下两种方式观看视频讲解:
温馨提示:由于现在编译器版本都比较高,默认的使用的C++标准也比较高,相关源代码请基于 C++11 标准进行测试,否则会与实际结果有出入。
C++11
1. 稳定性和兼容性
2. 易学和易用性
3. 通用性能的提升
- 常量表达式修饰符 - constexpr
- 委托构造函数和继承构造函数
- 右值引用
- 转移和完美转发
- 列表初始化
- using的使用
- 可调用对象包装器、绑定器
- POD类型
- 默认函数控制 =default 与 =delete
- 扩展的friend语法
- 强类型枚举
- 非受限联合体
4. 安全性
5. 多线程
C++14
C++14 主要目标是完成 C++11,修复缺陷并引入少量提升开发效率的特性。大部分更改是向后兼容的改进,没有引入破坏性变化。
- 二进制字面量
- 自定义字面量
- constexpr 限制放宽
- 泛型 Lambda 以及捕获变量的增强
- auto 和 decltype 的改进
- 聚合类成员初始化
- 变量模板
- 透明操作符函数对象
- 智能指针 unique_ptr 的优化
- 多线程之读写锁
C++17
- UTF-8字面量和十六进制浮点数字面量
- 嵌套的命名空间
- 属性增强
- 类型萃取
- 编译期判断语句 constexpr if
- if/switch 语句中的初始化器
- constexpr Lambda 和 捕获 *this 的拷贝
- 枚举的直接列表初始化
- 内联变量
- 结构化绑定
- 带有基类的聚合类
- 折叠表达式
- 带有 auto 类型的非类型模板参数
- 类模板参数推导
- 原始字节类型 - std::byte
- 将左值引用转换为常量引用 - std::as_const
- 万能调用神技 std::invoke
- 终极元组解包器 - std::apply / std::make_from_tuple
- 通用否定器 - std::not_fn
- std::map/set/unordered_map/unordered_set 的改进
- 类型安全的联合体 - std::variant
- 类型安全的任意类型容器 - std::any
- 薛定谔的盒子 - std::optional
- 字符串视图(非拥有视图)- string_view
- 并行算法
- 字符转换
- 智能指针的增强
- 透明比较利器 - std::owner_less
- 多线程之读写锁
- 搜索器






