第 0 章导读 1
0.1 关于本书. 1
0.2 读者对象. 1
0.3 术语与风格 2
0.4 语言标准. 3
0.5 本书的结构 4
0.6 如何阅读本书. 5
0.7 本书的源码 5
第 1 章总论 7
1.1 简介 7
1.1.1 获取方式 8
1.1.2 目录结构 8
1.1.3 使用方式 9
1.2 开发环境. 9
1.2.1 操作系统和编译器.10
1.2.2 快捷安装10
1.2.3 完全安装10
1.2.4 定制安装11
1.2.5 编译验证11
1.3 构建工具12
1.3.1 安装方式12
1.3.2 构建脚本12
1.3.3 构建语言.13
1.3.4 构建命令.14
1.4 总结14
第 2 章时间与日期15
2.1 timer 库概述15
2.2 timer16
2.2.1 用法16
2.2.2 类摘要17
2.2.3 使用建议.18
2.3 progress_timer 18
2.3.1 用法18
2.3.2 类摘要19
2.4 progress_display19
2.4.1 类摘要20
2.4.2 用法21
2.4.3 注意事项.22
2.5 date_time 库概述.23
2.5.1 使用方式.23
2.5.2 基本概念.24
2.6 处理日期24
2.6.1 日期25
2.6.2 创建日期对象25
2.6.3 访问日期27
2.6.4 日期的输出.28
2.6.5 转换C 结构29
2.6.6 日期长度29
2.6.7 日期运算30
2.6.8 日期区间31
2.6.9 日期区间运算33
2.6.10 日期迭代器34
2.6.11 其他功能35
2.6.12 综合运用36
2.7 处理时间38
2.7.1 时间长度39
2.7.2 操作时间长度40
2.7.3 时间精确度.42
2.7.4 时间点43
2.7.5 创建时间点对象44
2.7.6 操作时间点对象44
2.7.7 转换C 结构45
2.7.8 时间区间46
2.7.9 时间迭代器.46
2.7.10 综合运用47
2.8 date_time 库的高级议题49
2.8.1 编译配置宏.50
2.8.2 自定义字面值50
2.8.3 格式化时间.51
2.8.4 本地时间51
2.9 总结53
第 3 章内存管理.55
3.1 smart_ptr 库概述55
3.1.1 RAII 机制55
3.1.2 智能指针56
3.2 scoped_ptr57
3.2.1 类摘要57
3.2.2 操作函数58
3.2.3 用法59
3.2.4 对比标准.61
3.3 shared_ptr63
3.3.1 类摘要63
3.3.2 操作函数.64
3.3.3 用法65
3.3.4 工厂函数.67
3.3.5 应用于标准容器68
3.3.6 应用于桥接模式69
3.3.7 应用于工厂模式70
3.3.8 定制删除器.72
3.3.9 高级议题.73
3.4 weak_ptr.76
3.4.1 类摘要76
3.4.2 用法77
3.4.3 对象自我管理78
3.4.4 打破循环引用79
3.5 intrusive_ptr.80
3.5.1 类摘要80
3.5.2 用法81
3.5.3 引用计数器.82
3.6 pool 库概述.83
3.7 pool83
3.7.1 类摘要84
3.7.2 操作函数.84
3.7.3 用法85
3.8 object_pool 86
3.8.1 类摘要86
3.8.2 操作函数.86
3.8.3 用法87
3.8.4 更多的构造参数88
3.9 singleton_pool 89
3.9.1 类摘要89
3.9.2 用法90
3.10 pool_alloc 91
3.11 总结91
第 4 章实用工具.93
4.1 noncopyable.93
4.1.1 原理94
4.1.2 用法94
4.1.3 实现95
4.2 ignore_unused.96
4.2.1 基本用法96
4.2.2 模板用法97
4.3 optional97
4.3.1 类摘要98
4.3.2 操作函数99
4.3.3 用法.100
4.3.4 工厂函数101
4.4 assign.102
4.4.1 list_inserter102
4.4.2 operator+=.103
4.4.3 operator ()104
4.4.4 generic_list105
4.4.5 初始化容器106
4.4.6 重复输入108
4.4.7 操作非标准容器109
4.4.8 其他议题110
4.5 tribool 110
4.5.1 类摘要110
4.5.2 用法.111
4.5.3 为第三态更名.112
4.5.4 输入/输出.113
4.5.5 其他议题113
4.6 operators114
4.6.1 基本运算概念.116
4.6.2 算术操作符116
4.6.3 基类链118
4.6.4 复合运算概念.119
4.6.5 相等与等价121
4.6.6 解引用操作符.122
4.6.7 下标操作符123
4.6.8 布尔转型操作符124
4.6.9 二元操作符126
4.7 exception.126
4.7.1 标准库中的异常127
4.7.2 类摘要127
4.7.3 向异常传递信息129
4.7.4 错误信息类130
4.7.5 包装标准异常.132
4.7.6 使用函数抛出异常132
4.7.7 获得更多信息.133
4.7.8 高级议题134
4.8 uuid.136
4.8.1 类摘要136
4.8.2 用法.137
4.8.3 生成器139
4.8.4 增强用法141
4.8.5 转换字符串142
4.8.6 摘要算法143
4.9 config.144
4.9.1 编译期字符串化144
4.9.2 静态整型常量.145
4.10 utility 145
4.10.1 二进制常量146
4.10.2 调用函数名147
4.11 总结.148
第 5 章字符串与文本处理151
5.1 lexical_cast 151
5.1.1 函数声明152
5.1.2 用法.152
5.1.3 错误处理153
5.1.4 转换对象的要求154
5.1.5 应用于自定义类155
5.1.6 对比标准156
5.2 format 157
5.2.1 简单的例子157
5.2.2 输入操作符159
5.2.3 类摘要160
5.2.4 格式化语法161
5.2.5 性能优化162
5.2.6 高级用法162
5.3 string_ref164
5.3.1 类摘要164
5.3.2 用法.166
5.4 string_algo167
5.4.1 简单示例168
5.4.2 算法概述169
5.4.3 大小写转换169
5.4.4 判断式(算法) 170
5.4.5 判断式(函数对象)172
5.4.6 分类.172
5.4.7 修剪.173
5.4.8 查找.174
5.4.9 替换与删除176
5.4.10 分割177
5.4.11 合并179
5.4.12 查找(分割)迭代器179
5.5 xpressive181
5.5.1 使用方式181
5.5.2 正则表达式简介182
5.5.3 类摘要183
5.5.4 正则匹配185
5.5.5 正则查找187
5.5.6 正则替换188
5.5.7 正则迭代189
5.5.8 正则分词190
5.5.9 高级议题192
5.6 总结194
第 6 章正确性与测试197
6.1 assert197
6.1.1 基本用法197
6.1.2 禁用断言198
6.1.3 扩展用法199
6.2 static_assert 200
6.2.1 定义.201
6.2.2 用法.201
6.2.3 使用建议203
6.3 lightweight_test 203
6.3.1 测试断言203
6.3.2 用法.204
6.3.3 测试元编程205
6.4 test 205
6.4.1 最小化测试206
6.4.2 单元测试框架.207
6.4.3 测试断言208
6.4.4 测试主体209
6.4.5 测试实例210
6.4.6 测试夹具212
6.4.7 测试日志214
6.4.8 运行参数215
6.4.9 高级议题216
6.5 总结219
第 7 章容器与数据结构.221
7.1 array221
7.1.1 类摘要222
7.1.2 操作函数222
7.1.3 用法.223
7.1.4 能力限制224
7.1.5 初始化224
7.1.6 对比标准225
7.2 dynamic_bitset 225
7.2.1 类摘要226
7.2.2 创建与赋值227
7.2.3 容器操作228
7.2.4 基本运算229
7.2.5 访问元素230
7.2.6 类型转换231
7.2.7 集合操作232
7.2.8 综合运用233
7.3 unordered 234
7.3.1 散列集合简介.234
7.3.2 散列集合的用法236
7.3.3 散列映射简介.238
7.3.4 散列映射的用法239
7.3.5 高级议题241
7.4 bimap243
7.4.1 类摘要243
7.4.2 基本用法244
7.4.3 值的集合类型.245
7.4.4 集合类型的用法246
7.4.5 使用标签类型.247
7.4.6 使用assign 库.249
7.4.7 查找与替换249
7.4.8 投射.251
7.4.9 高级议题252
7.5 circular_buffer253
7.5.1 类摘要253
7.5.2 用法.254
7.5.3 环形结构255
7.5.4 空间优化256
7.6 tuple 257
7.6.1 二元组257
7.6.2 类摘要258
7.6.3 创建与赋值258
7.6.4 访问元素260
7.6.5 比较操作261
7.6.6 输入输出261
7.6.7 连结变量262
7.6.8 内部结构263
7.6.9 使用访问者模式264
7.6.10 高级议题266
7.7 any 269
7.7.1 类摘要269
7.7.2 访问元素270
7.7.3 用法.271
7.7.4 简化操作271
7.7.5 保存指针272
7.7.6 输出.273
7.7.7 高级议题275
7.8 variant276
7.8.1 类摘要276
7.8.2 访问元素277
7.8.3 用法.278
……