不那么新的modern C++简要学习笔记
前言
C++11
Alignas
Alignof
原子操作
属性
自动类型推导
C99兼容预处理器
常量表达式
decltype
缺省函数和可删除函数
委托构造函数
动态初始化和并发析构(魔法静态)
动态指针安全(垃圾回收接口)
显式转换操作符
扩展的friend声明
外部模板
前向声明枚举类型
继承构造函数
初始化列表
内联名字空间
Lambda表达式
本地和匿名类型作为模板参数
long long类型
货币、时间、16进制浮点I/O操作
新字符类型
noexcept关键字
非静态数据成员初始化
Nullptr
override和final关键字
基于范围的for循环
原始字面量字符串
扩展移动语义
右尖括号
右值引用
静态断言
强类型枚举
模板别名
线程本地存储
过滤函数返回类型
类型萃取
Unicode字面量字符串
非受限联合体
用户自定义字面量
可变参数模板
C++14
二进制字面量
澄清内存分配
<array>的常量表达式
<chrono>的常量表达式
<complex>的常量表达式
<initializer_list>,<utility>和<tuple>的常量表达式
普通函数返回值类型推导
废弃的属性
双范围的std::equal, std::is_permutation, std::mismatch
扩展常量表达式
修复成员函数常量表达式不能带const修饰
Lambda表达式的泛型和多态
关联容器异构比较查找算法
改进std::integral_constant
初始化和泛化lambda表达式捕获列表
成员初始化和聚合
Null前向迭代器
单引号作为数字分隔符
释放指定大小的内存
std::exchage
std::get<T>()
std::integer_squence
std::quoted
std::result_of和SFINAE
std::shared_timed_mutex
调整上下文转换
为chrono和string提供用户自定义字面量
变量模板
C++17
[[fallthrough]]属性
[[maybe_unused]]属性
[[nodiscard]]属性
聚合带基类的类的初始化
允许所有非类型模板参数进行参量计算
名字空间和枚举的属性
if语句常量表达式
Lambda常量表达式
基于范围的for循环可以拥有不同类型的begin和end
枚举直接列表初始化
为过量对齐数据动态分配内存
基础字符串转换
折叠表达式
保证复制省略
16进制浮点字面量
忽略未知属性
改进std::pair和std::tuple
if和switch的初始化语句
Inline变量
Lambda表达式可以捕获*this
将异常规范作为类型系统的一部分
匹配排除兼容模板后的模板模板参数
嵌套名字空间定义
为直接列表初始化设置新的auto规则
继承构造函数的新规范
用auto类型作为无类型的模板参数
在using声明中使用打包扩张(pack expansion)
删除C++17中废弃的异常规范
删除废弃的operator++(bool)
删除废弃的register关键字
删除三联符
拼接map和set
并行的技术规范标准化
无消息的静态断言
std::shared_mutex(untimed)
std::string_view
std::uncaught_exceptions
更严格的表达式估值顺序
结构化绑定
类模板的模板参数推导
模板模板参数中使用typename
u8字符字面量
一元折叠表达式和空参打包
不重复地使用带属性的名字空间
更新日志
C++14
成员初始化和聚合