编辑推荐

适读人群:《Boost程序库完全开发指南――深入C++"准”标准库(第4版)》内容丰富、结构严谨、详略得当、讲解透彻,带领读者领略了C++的最新前沿技术,相信会是每位C++程序员的必备工具书。

《Boost程序库完全开发指南——深入C++"准”标准库(第4版)》内容丰富、结构严谨、详略得当、讲解透彻,带领读者领略了C++的*新前沿技术,相信会是每位C++程序员的必备工具书。

内容简介

Boost是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库,有着“C++‘准’标准库”的美誉。Boost由C++标准委员会部分成员所设立的Boost社区开发并维护,使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简捷、优雅、灵活和高效。《Boost程序库完全开发指南――深入C++"准”标准库(第4版)》基于2017年4月发布的Boost1.64版,介绍了其中的所有140余个库,并且结合C++11/14/17标准详细、深入地讲解了其中数十个库,同时实现了若干颇具实用价值的工具类和函数,可帮助读者迅速地理解、掌握Boost的用法并应用于实际的开发工作。《Boost程序库完全开发指南――深入C++"准”标准库(第4版)》内容丰富、结构严谨、详略得当、讲解透彻,带领读者领略了C++的*新前沿技术,相信会是每位C++程序员的必备工具书。

作者简介

罗剑锋(网名Chrono)在1996年就读于东北财经大学;1997年开始接触C/C++;1998年参加计算机软件专业技术资格和水平考试,获高级程序员资质;2003年毕业于北京理工大学,获计算机专业硕士学位。主要研究方向为C/C++、设计模式、高性能网络服务器开发,业余爱好是阅读、旅游、欣赏音乐和电影。

目录

目录
第0章导读....................................................1
0.1关于《Boost程序库完全开发指南――深入C++"准”标准库(第4版)》...........................................1
0.2读者对象...........................................1
0.3术语与风格......................................2
0.4语言标准...........................................3
0.5《Boost程序库完全开发指南――深入C++"准”标准库(第4版)》的结构......................................4
0.6如何阅读《Boost程序库完全开发指南――深入C++"准”标准库(第4版)》..................................5
0.7《Boost程序库完全开发指南――深入C++"准”标准库(第4版)》的源码......................................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.1timer库概述....................................15
2.2timer.................................................16
2.2.1用法.......................................16
2.2.2类摘要...................................17
2.2.3使用建议...............................18
2.3progress_timer.................................18
2.3.1用法.......................................18
2.3.2类摘要...................................19
2.4progress_display..............................19
2.4.1类摘要...................................20
2.4.2用法.......................................21
2.4.3注意事项...............................22
2.5date_time库概述............................23
2.5.1使用方式...............................23
2.5.2基本概念...............................24
2.6处理日期..........................................24
2.6.1日期.......................................25
2.6.2创建日期对象........................25
目录
Boost程序库完全开发指南―深入C++“准”标准库(第4版)
X
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.8date_time库的高级议题...............49
2.8.1编译配置宏............................50
2.8.2自定义字面值........................50
2.8.3格式化时间............................51
2.8.4本地时间................................51
2.9总结..................................................53
第3章内存管理...........................................55
3.1smart_ptr库概述.............................55
3.1.1RAII机制..............................55
3.1.2智能指针................................56
3.2scoped_ptr........................................57
3.2.1类摘要...................................57
3.2.2操作函数................................58
3.2.3用法.......................................59
3.2.4对比标准...............................61
3.3shared_ptr........................................63
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.4weak_ptr...........................................76
3.4.1类摘要...................................76
3.4.2用法.......................................77
3.4.3对象自我管理........................78
3.4.4打破循环引用........................79
3.5intrusive_ptr.....................................80
3.5.1类摘要...................................80
3.5.2用法.......................................81
3.5.3引用计数器............................82
3.6pool库概述.....................................83
3.7pool...................................................83
3.7.1类摘要...................................84
3.7.2操作函数...............................84
3.7.3用法.......................................85
3.8object_pool......................................86
3.8.1类摘要...................................86
3.8.2操作函数...............................86
3.8.3用法.......................................87
3.8.4更多的构造参数....................88
3.9singleton_pool.................................89
3.9.1类摘要...................................89
3.9.2用法.......................................90
3.10pool_alloc......................................91
目录
Boost程序库完全开发指南―深入C++“准”标准库(第4版)
XI
3.11总结................................................91
第4章实用工具...........................................93
4.1noncopyable.....................................93
4.1.1原理.......................................94
4.1.2用法.......................................94
4.1.3实现.......................................95
4.2ignore_unused..................................96
4.2.1基本用法................................96
4.2.2模板用法................................97
4.3optional.............................................97
4.3.1类摘要...................................98
4.3.2操作函数................................99
4.3.3用法.....................................100
4.3.4工厂函数..............................101
4.4assign..............................................102
4.4.1list_inserter...........................102
4.4.2operator+=............................103
4.4.3operator()............................104
4.4.4generic_list...........................105
4.4.5初始化容器..........................106
4.4.6重复输入..............................108
4.4.7操作非标准容器..................109
4.4.8其他议题..............................110
4.5tribool.............................................110
4.5.1类摘要.................................110
4.5.2用法.....................................111
4.5.3为第三态更名......................112
4.5.4输入/输出............................113
4.5.5其他议题..............................113
4.6operators.........................................114
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.7exception........................................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.8uuid.................................................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.9config..............................................144
4.9.1编译期字符串化..................144
4.9.2静态整型常量......................145
4.10utility............................................145
4.10.1二进制常量........................146
4.10.2调用函数名........................147
4.11总结..............................................148
第5章字符串与文本处理.......................151
5.1lexical_cast....................................151
5.1.1函数声明.............................152
5.1.2用法.....................................152
5.1.3错误处理.............................153
5.1.4转换对象的要求..................154
目录
Boost程序库完全开发指南―深入C++“准”标准库(第4版)
XII
5.1.5应用于自定义类..................155
5.1.6对比标准..............................156
5.2format.............................................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.3string_ref........................................164
5.3.1类摘要.................................164
5.3.2用法.....................................166
5.4string_algo.....................................167
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.5xpressive.........................................181
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.1assert...............................................197
6.1.1基本用法.............................197
6.1.2禁用断言.............................198
6.1.3扩展用法.............................199
6.2static_assert...................................200
6.2.1定义.....................................201
6.2.2用法.....................................201
6.2.3使用建议.............................203
6.3lightweight_test.............................203
6.3.1测试断言.............................203
6.3.2用法.....................................204
6.3.3测试元编程..........................205
6.4test..................................................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.1array................................................221
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.2dynamic_bitset..............................225
目录
Boost程序库完全开发指南―深入C++“准”标准库(第4版)
XIII
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.3unordered.......................................234
7.3.1散列集合简介......................234
7.3.2散列集合的用法..................236
7.3.3散列映射简介......................238
7.3.4散列映射的用法..................239
7.3.5高级议题..............................241
7.4bimap..............................................243
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.5circular_buffer...............................253
7.5.1类摘要.................................253
7.5.2用法.....................................254
7.5.3环形结构..............................255
7.5.4空间优化..............................256
7.6tuple................................................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.7any..................................................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.8variant.............................................276
7.8.1类摘要.................................276
7.8.2访问元素.............................277
7.8.3用法.....................................278
7.8.4访问器.................................279
7.8.5高级议题.............................281
7.9multi_array.....................................283
7.9.1类摘要.................................284
7.9.2用法.....................................285
7.9.3改变形状和大小..................287
7.9.4创建子视图..........................287
7.9.5适配普通数组......................289
7.9.6高级议题.............................290
7.10property_tree...............................292
7.10.1类摘要...............................293
7.10.2读取配置信息....................294
7.10.3写入配置信息....................296
7.10.4更多用法...........................297
7.10.5数据格式...........................298
7.10.6高级议题...........................300
7.11总结..............................................302
目录
Boost程序库完全开发指南―深入C++“准”标准库(第4版)
XIV
第8章算法.................................................305
8.1foreach............................................305
8.1.1用法.....................................306
8.1.2详细解说..............................307
8.1.3更优雅的名字......................308
8.1.4支持的序列类型..................308
8.1.5存在的问题..........................309
8.2minmax...........................................310
8.2.1用法.....................................310
8.2.2存在的问题..........................311
8.3minmax_element...........................311
8.3.1基本用法..............................312
8.3.2其他用法..............................312
8.4algorithm........................................313
8.4.1clamp...................................313
8.4.2clamp_range.........................314
8.4.3hex/unhex.............................314
8.5总结................................................316
第9章数学与数字....................................317
9.1math.constants...............................317
9.1.1基本用法..............................318
9.1.2高级用法..............................318
9.2integer.............................................319
9.2.1整数特征..............................319
9.2.2标准整数类型......................320
9.2.3整数类型模板类..................322
9.3rational............................................325
9.3.1类摘要.................................326
9.3.2创建与赋值..........................327
9.3.3基本运算..............................327
9.3.4类型转换..............................328
9.3.5输入输出..............................328
9.3.6分子与分母..........................328
9.3.7其他议题..............................329
9.4ratio.................................................330
9.4.1类摘要.................................330
9.4.2用法.....................................331
9.4.3数字单位.............................331
9.4.4字符串表示..........................333
9.5crc...................................................333
9.5.1类摘要.................................334
9.5.2预定义的实现类..................334
9.5.3用法.....................................335
9.6random............................................336
9.6.1随机数发生器......................336
9.6.2随机数分布器......................338
9.6.3变量发生器..........................343
9.6.4产生随机数据块..................344
9.6.5真随机数发生器..................345
9.7总结................................................348
第10章操作系统相关..............................349
10.1system...........................................349
10.1.1错误值...............................350
10.1.2错误类别...........................350
10.1.3错误代码...........................352
10.1.4错误异常...........................354
10.2chrono...........................................354
10.2.1时间长度...........................355
10.2.2使用时间长度....................356
10.2.3时钟...................................358
10.2.4时间点...............................360
10.2.5综合运用...........................361
10.3cpu_timer.....................................363
10.3.1时间类型...........................364
10.3.2cpu_timer...........................364
10.3.4auto_cpu_timer...................366
10.3.5定制输出格式....................367
10.4filesystem.....................................368
目录
Boost程序库完全开发指南―深入C++“准”标准库(第4版)
XV
10.4.1类摘要...............................368
10.4.2路径表示............................370
10.4.3可移植的文件名................372
10.4.4路径处理............................372
10.4.5异常处理............................375
10.4.6文件状态............................376
10.4.7文件属性............................377
10.4.8文件操作............................378
10.4.9迭代目录............................379
10.4.10实例1...............................382
10.4.11实例2...............................383
10.4.12实例3...............................385
10.4.13文件流操作......................386
10.5program_options.........................387
10.5.1概述...................................387
10.5.3选项值...............................389
10.5.4选项描述器........................391
10.5.5选项描述器的用法............392
10.5.6分析器...............................394
10.5.7存储器...............................395
10.5.8位置选项值........................396
10.5.9环境变量............................398
10.5.10分组选项信息..................399
10.5.11高级用法..........................401
10.6总结..............................................404
第11章函数与回调..................................405
11.1ref..................................................405
11.1.1类摘要...............................406
11.1.2基本用法............................407
11.1.3工厂函数............................407
11.1.4操作包装............................408
11.1.5综合应用............................409
11.1.6对比标准............................410
11.2bind...............................................411
11.2.1工作原理...........................411
11.2.2绑定普通函数....................413
11.2.3绑定成员函数....................414
11.2.4绑定成员变量....................415
11.2.5绑定函数对象....................416
11.2.6对比标准...........................416
11.2.7高级议题...........................417
11.3function........................................421
11.3.1类摘要...............................421
11.3.2声明形式...........................422
11.3.3操作函数...........................423
11.3.4用法...................................424
11.3.5使用ref库.........................425
11.3.6用于回调...........................426
11.3.7对比auto............................428
11.3.8对比std::function...............429
11.4signals2........................................429
11.4.1类摘要...............................430
11.4.2操作函数...........................431
11.4.3用法...................................432
11.4.4返回值...............................434
11.4.5合并器...............................434
11.4.6管理信号连接....................436
11.4.7更灵活的管理信号连接.....437
11.4.8自动管理连接....................439
11.4.9应用于观察者模式............441
11.4.10高级议题..........................444
11.5总结..............................................449
第12章并发编程......................................451
12.1atomic...........................................451
12.1.1类摘要...............................452
12.1.2基本用法...........................454
12.1.3整数用法...........................455
12.1.4并发顺序一致性................456
目录
Boost程序库完全开发指南―深入C++“准”标准库(第4版)
XVI
12.2thread............................................458
12.2.1mutex.................................459
12.2.2lock_guard..........................461
12.2.3unique_lock........................463
12.2.4lockadapter........................465
12.2.5thread.................................467
12.2.6使用线程............................469
12.2.7中断线程............................472
12.2.8thread_group......................475
12.2.9call_once............................476
12.2.10condition_variable............477
12.2.11shared_mutex....................481
12.2.12future................................483
12.2.13shared_future....................486
12.2.14高级议题..........................487
12.3asio................................................491
12.3.1概述...................................491
12.3.2信号...................................497
12.3.3定时器...............................501
12.3.4网络通信............................507
12.3.5同步通信............................514
12.3.6异步通信............................516
12.3.7解析网络地址....................521
12.3.8使用协程............................524
12.3.9其他议题............................526
12.4总结..............................................530
第13章组件速览......................................533
13.1算法..............................................533
13.2字符串和文本处理.....................534
13.3容器与数据结构.........................535
13.4迭代器..........................................536
13.5函数对象与高级编程................536
13.6泛型编程.....................................538
13.7模板元编程.................................539
13.8预处理元编程.............................540
13.9并发编程.....................................540
13.10数学与数字...............................541
13.11输入输出...................................542
13.12操作系统相关...........................543
13.13语言特性模拟...........................543
13.14杂项............................................544
13.15总结............................................546
第14章设计模式......................................547
14.1创建型模式.................................548
14.2结构型模式.................................549
14.3行为模式.....................................552
14.4其他模式.....................................555
14.5总结..............................................557
第15章结束语..........................................559
15.1未臻完美.....................................559
15.2锦上添花.....................................560
15.3工夫在诗外.................................563
15.4临别赠言.....................................564
附录A推荐书目.........................................565
附录B标准简述.........................................567
附录C关键字浅谈.....................................571

前言/序言

  推荐序

  最近一年我电话面试了数十位C++应聘者,惯用的暖场问题是“工作中使用过STL的哪些组件?用过Boost的哪些组件?”得到的答案大多集中在vector、map和shared_ptr。如果对方是在校学生,我一般会问问vector或map的内部实现、各种操作的复杂度,以及迭代器失效的可能场景。如果是有经验的程序员,我还会追问shared_ptr的线程安全性、循环

其他推荐