1. 泛型编程与C++标准库 1
- 第1条 vector的使用 2
- 第2条 字符串格式化的“动物庄园”之一:sprintf 9
- 第3条 字符串格式化的“动物庄园”之二:标准的(或极度优雅的)替代方案 14
- 第4条 标准库成员函数 23
- 第5条 泛型性的风味之一:基础 26
- 第6条 泛型性的风味之二:够“泛”了吗 30
- 第7条 为什么不特化函数模板 36
- 第8条 友元模板 42
- 第9条 导出限制之一:基础 51
- 第10条 导出限制之二:相互影响,可用性问题以及准则 58
2. 异常安全问题及相关技术 67
- 第11条 Try和Catch 68
- 第12条 异常安全性:值得吗? 72
- 第13条 对异常规格的实际考虑 75
3. 类的设计、继承和多态 83
- 第14条 顺序,顺序! 84
- 第15条 访问权限的使用 88
- 第16条 (几乎)私有 93
- 第17条 封 装 101
- 第18条 虚 拟 110
- 第19条 对派生类施加规则 118
4. 内存和资源管理 129
- 第20条 内存中的容器之一:内存管理的层次 130
- 第21条 内存中的容器之二:它到底有多大? 133
- 第22条 进行new操作,也许会抛出异常之一:new的方方面面 140
- 第23条 进行new操作,也许会抛出异常之二:内存管理中的实际问题 148
5. 优化和效率 155
- 第24条 常量优化 156
- 第25条 再论内联 161
- 第26条 数据格式和效率之一:什么时候压缩是真正重要的 168
- 第27条 数据格式和效率之二:(甚至更少的)位操纵 172
6. 陷阱、缺陷和谜题 179
- 第28条 不是关键字的关键字(或者:另一种注释) 180
- 第29条 这是初始化么? 186
- 第30条 要么double要么彻底完蛋 191
- 第31条 狂乱的代码 194
- 第32条 小小的拼写错误?鬼画符似的语言以及其他奇形怪状的东西 199
- 第33条 操作符,无处不在的操作符 202
7. 风格案例研究 207
- 第34条 索 引 表 208
- 第35条 泛型回调 218
- 第36条 构造式union 226
- 第37条 分解std::string之一:概观std::string 242
- 第38条 分解std::string之二:重构std::string 247
- 第39条 分解std::string之三:给std::string瘦身 255
- 第40条 分解std::string之四:再论std::string 259
8. 参考文献 267