更新时间:2021-09-27 17:50:52
封面
版权信息
版 权
内容提要
推荐序
前言
为什么要写这本书
本书的组织结构
本书特色
读完这本书你将收获什么
面向读者
致谢
资源与支持
配套资源
提交错误信息
与我们联系
关于异步社区和异步图书
第1章 新基础类型(C++11~C++20)
1.1 整数类型long long
1.2 新字符类型char16_t和char32_t
1.2.1 字符集和编码方法
1.2.2 使用新字符类型char16_t和char32_t
1.2.3 wchar_t存在的问题
1.2.4 新字符串连接
1.2.5 库对新字符类型的支持
1.3 char8_t字符类型
1.4 总结
第2章 内联和嵌套命名空间(C++11~C++20)
2.1 内联命名空间的定义和使用
2.2 嵌套命名空间的简化语法
2.3 总结
第3章 auto占位符(C++11~C++17)
3.1 重新定义的auto关键字
3.2 推导规则
3.3 什么时候使用auto
3.4 返回类型推导
3.5 lambda表达式中使用auto类型推导
3.6 非类型模板形参占位符
3.7 总结
第4章 decltype说明符(C++11~C++17)
4.1 回顾typeof和typeid
4.2 使用decltype说明符
4.3 推导规则
4.4 cv限定符的推导
4.5 decltype(auto)
4.6 decltype(auto)作为非类型模板形参占位符
4.7 总结
第5章 函数返回类型后置(C++11)
5.1 使用函数返回类型后置声明函数
5.2 推导函数模板返回类型
5.3 总结
第6章 右值引用(C++11 C++17 C++20)
6.1 左值和右值
6.2 左值引用
6.3 右值引用
6.4 右值的性能优化空间
6.5 移动语义
6.6 值类别
6.7 将左值转换为右值
6.8 万能引用和引用折叠
6.9 完美转发
6.10 针对局部变量和右值引用的隐式移动操作
6.11 总结
第7章 lambda表达式(C++11~C++20)
7.1 lambda表达式语法
7.2 捕获列表
7.2.1 作用域
7.2.2 捕获值和捕获引用
7.2.3 特殊的捕获方法
7.3 lambda表达式的实现原理
7.4 无状态lambda表达式
7.5 在STL中使用lambda表达式
7.6 广义捕获
7.7 泛型lambda表达式
7.8 常量lambda表达式和捕获*this
7.9 捕获[= this]
7.10 模板语法的泛型lambda表达式
7.11 可构造和可赋值的无状态lambda表达式
7.12 总结
第8章 非静态数据成员默认初始化(C++11 C++20)
8.1 使用默认初始化
8.2 位域的默认初始化
8.3 总结
第9章 列表初始化(C++11 C++20)
9.1 回顾变量初始化
9.2 使用列表初始化
9.3 std::initializer_list详解
9.4 使用列表初始化的注意事项
9.4.1 隐式缩窄转换问题
9.4.2 列表初始化的优先级问题
9.5 指定初始化
9.6 总结
第10章 默认和删除函数(C++11)
10.1 类的特殊成员函数
10.2 显式默认和显式删除
10.3 显式删除的其他用法
10.4 explicit和=delete
10.5 总结
第11章 非受限联合类型(C++11)
11.1 联合类型在C++中的局限性