第1章 开始编写应用程序 1
秘笈1获取配置选项 1
秘笈2在容器/变量中存储任意值 5
秘笈3在变量/容器中存储多个选择类型 7
秘笈4使用更安全的方式处理存储多个选择类型的容器 8
秘笈5返回一个值或在没有值的地方返回一个标志 12
秘笈6从函数返回数组 14
秘笈7将多个值结合成一个值 16
秘笈8重新排列函数的参数 18
秘笈9绑定一个值作为函数参数 21
秘笈10使用C++11移动仿真 23
秘笈11制作一个不可复制的类 26
秘笈12制作一个不可复制但可移动的类 28
第2章 数据转换 32
秘笈13将字符串转换为数值 32
秘笈14将数值转换为字符串 34
秘笈15将数值转换为数值 36
秘笈16用户定义类型与字符串的相互转换 39
秘笈17强制转换多态对象 41
秘笈18解析简单的输入 43
秘笈19解析输入 46
第3章 资源管理 51
秘笈20管理作用域内的类指针 51
秘笈21跨方法使用的类指针的引用计数 53
秘笈22管理作用域内的数组指针 55
秘笈23跨方法使用的数组指针的引用计数 56
秘笈24在变量中存储任意函数化对象 59
秘笈25在变量中传递函数指针 61
秘笈26在变量中传递C++11中的lambda函数 62
秘笈27指针的容器 63
秘笈28在退出作用域时做一些事 66
秘笈29用派生类的成员初始化 67
基类 67
第4章 编译时技巧 71
秘笈30在编译时检查大小 71
秘笈31在整数类型中启用模板函数 75
秘笈32在实数类型中禁用模板函数 77
秘笈33从数值创建一个类型 80
秘笈34实现类型特征 82
秘笈35为模板参数选择最佳操作符 83
秘笈36在C++03中获取一个表达式的类型 86
第5章 多线程 89
秘笈37创建一个执行线程 89
秘笈38对公共资源的同步访问 92
秘笈39利用原子性快速访问公共资源 96
秘笈40创建work queue类 98
秘笈41多读者单写者锁 102
秘笈42创建对每个线程都是独占的变量 104
秘笈43中断线程 106
秘笈44操纵一组线程 108
第6章 处理任务 109
秘笈45注册任务用于处理任意数据类型 109
秘笈46制作定时器并把定时器事件作为任务处理 113
秘笈47将网络通信作为一个任务 116
秘笈48接受传入的连接 121
秘笈49并行执行不同的任务 125
秘笈50输送任务处理 127
秘笈51制作一个非阻塞障碍 131
秘笈52存储一个异常并用它制作任务 135
秘笈53作为任务获取和处理系统信号 138
第7章 处理字符串 142
秘笈54改变大小写及不区分大小写的比较 142
秘笈55使用正则表达式匹配字符串 144
秘笈56使用正则表达式查找和替换字符串 147
秘笈57使用安全的类似printf的函数格式化字符串 150
秘笈58替换和删除字符串 152
秘笈59用两个迭代器表示字符串 153
秘笈60使用string类型的引用 156
第8章 元编程 160
秘笈61使用“类型向量”类型 160
秘笈62操作类型向量 164
秘笈63在编译时获取一个函数的结果类型 168
秘笈64制作高阶元函数 170
秘笈65懒惰地对元函数求值 172
秘笈66将所有元组元素转换为字符串 175
秘笈67拆分元组 178
第9章 容器 182
秘笈68以超快速的方式比较字符串 182
秘笈69使用无序集合和映射 186
秘笈70制作值也是一个键的映射 189
秘笈71使用多索引容器 192
秘笈72从单链表和内存池获得好处 197
秘笈73使用平面关联式容器 200
第10章 收集平台和编译器信息 204
秘笈74检测int128支持 204
秘笈75检测RTTI支持 206
秘笈76使用C++ 11外部模板加快编译速度 208
秘笈77使用更简单的方法编写元函数 209
秘笈78在C++11中减少代码量和提高用户定义类型的性能 211
秘笈79导入和导出函数和类的可移植方式 213
秘笈80检测Boost版本和最新的功能 215
第11章 与系统打交道 218
秘笈81列出目录中的文件 218
秘笈82创建及删除文件和目录 220
秘笈83将数据从一个进程快速传递到另一个进程 222
秘笈84同步进程间通信 225
秘笈85在共享内存中使用指针 228
秘笈86读取文件的最快方式 229
秘笈87协程——保存状态并推迟执行 232
第12章 揭开冰山一角 235
秘笈88使用图形 235
秘笈89可视化图形 239
秘笈90使用真随机数发生器 241
秘笈91使用可移植的数学函数 243
秘笈92编写测试用例 244
秘笈93将多个测试用例结合到一个测试模块 246
秘笈94处理图像 248