热门排行
简介
《现代C++语言核心特性解析》这本书是2021年10月出版的,到现在已经经过了2年多的时间,深入探讨了从C++11到C++20引入的核心特性。书中不仅通过大量的实例代码讲解特性的概念和语法,还从编译器的角度分析特性的实现原理,书中还穿插了C++标准委员会制定特性标准时的一些小故事,帮助读者知其然也知其所以然。。
C++23标准相比之前的C++20、C++11对于标准的修改并不算大,因此不会对我们编写代码的方式有太大影响。这本电子书作为《现代C++语言核心特性解析》的补充,它必然与本体有着比较大的联系,有的章节会提到本体的一部分内容,所以对于不熟悉C++11到C++20标准的朋友来说,读起来可能会有一些不太友好。
目录
0. 前言
1. 支持预处理指令 #elifdef 和 #elifndef
2. 允许重复属性
3. 允许static_assert声明在与求值无关的模板上下文
4. assume 属性
5. 初始化语句允许别名声明
6. 允许在lambda表达式上使用属性
7. 引入auto(x)和auto{x}代替decay-copy
8. char8_t兼容性和可移植性修复
9. 引入翻译字符集
10. consteval if 语句
11. 分隔的转义序列
12. 显式对象参数
13. 标识符语法使用UAX31
14. 允许复合语句末尾的标签(与C语言兼容)
15. signed size_t 和 size_t 的字面量后缀 z 和 uz
16. 可选的lambda表达式中的括号
17. 强制的类成员声明顺序布局
18. 多维下标运算符
19. 具名通用字符转义
20. 明确static_assert 和if constexpr支持bool缩窄转换
21. 允许非字面量变量和goto语句的常量表达式函数
22. 进一步放宽常量表达式函数的限制
23. 禁止混合字符串字面量的连接
24. 删除不可编码的宽字符和多字宽字符字面量
25. 可选的扩展浮点类型
26. 允许static_asserts参数与if constexpr条件语句缩窄转换到bool类型
27. 静态下标运算符函数
28. 支持UTF-8作为可移植源文件编码
29. 明确==和!=操作符的生成规则
30. 修剪行拼接符后的空格
31. 支持#warning预处理指令
32. 更简单的隐式移动
33. 静态函数调用运算符函数