1. 首页
  2. 编程语言
  3. C++ 
  4. boost程序库探秘

boost程序库探秘

上传者: 2019-09-10 07:17:33上传 PDF文件 500kb 热度 15次
boost库开发,C++第二标准库,功能强大,内容丰富。boost程序库探秘(度解析c准标准库罗剑锋著清华大学出版社北京内容简介Boost程序库由C艹标准委员会部分成员所设立的 Boost社区开发并维护,它功能强大、构造精巧、跨平台、开源并且完全免费,被称为“C++‘准’标准库”,已被广泛应用在实际软件开发中。C++的最新标准(C++11)已经正式公布,而早在这之前, Boost就已经使用库的形式实现了大部分新功能——而且是完全基于C++98标准实现的,内容涵盖智能指针、文本处理、并发、模板元等许多领域,其范围之广内涵之深甚至要超过C++11标准,极大地增强了C++的功能和表现力。本书基于 Boosts47版,深入探讨了其中的许多重要组件,包括迭代器、函数对象、容器、流处理、序列化以及C++语言中最复杂最具威力的模板元编程,并专辟一章详细阐述 Boost的开发实例,具有较强的实用性,可帮助读者更好更快地理解掌握 Boost的高级用法。全书内容丰富、组织得当、概念清晰、讲解细致,是广大C++程序员和爱好者的必备好书。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。版权所有,侵权必究。侵权举报电话:010-6278298913701121933图书在版编目(CP)数据Boost程序库探秘深度解析C++准标准库/罗剑锋著.一北京:清华大学出版社,2012.3ISBN978-7-302-27485-8I.①B…Ⅱ.①罗…Ⅲ.①C语言一程序设计Ⅳ.①TP312中国版本图书馆CIP数据核字(2011)第25580号赉任编辑:袁金敏封面设计:柳晓春责任校对:徐俊伟责任印制:王秀菊出版发行:清华大学出版社pagtithttp://www,tup,comcn,http://www.wqbook.com地址:北京清华大学学研大厦A座邮编:100084杜总机:010-62770175邮购:010-62786544投稿与读者服务:010-62776969, service@tup. tsinghua.edu,cn质量反馈:010-62772015,zhiliang@tup.tsinghua,edu.cn印装者:清华大学印刷厂经销:全国新华书店开本:185mm×235mm张:38.5宇数;937千字版次:2012年3月第1版印次:2012年3月第1次印刷印数:1~4000定价:79.00元产品编号:044866-01前言缘起2010年作者依据在实际开发中的经验编写了《 Boost程序库完全开发指南深入c++准”标准库》(以下简称《指南》)一书,想为国内的C++程序员了解C++的最新技术进展尽一份自己的力量。图书付梓之后获得了许多的好评,同时也得到了很多有价值的批评意见一无论读者如何评价该书,对作者而言都是鼓励。由于《指南》成书时间较仓促, Boost程序库又太过庞大,许多原本预想的内容限于篇幅不得不忍痛割爱予以移除,未能展现在读者面前,颇觉遗憾。于是时隔一年有余,作者将《指南》书中部分移除的内容补充完善,又增加了对 Boost的新的研究心得,再次奉献给读者,希望同《指南》一样能够给国内C++程序员和爱好者带来一点帮助。不比《指南》的一帆风顺,这次的写作过程异常艰辛,断断续续持续了一年半多,因为工作紧张、项目实施出差等原因数次暂停(累计差不多有数月的时间),中途再度拾笔写作时经常面临思路中断的烦恼。另一方面,书中的几个 Boost组件比较复杂,对其的研究也是颇有难度,而把它表述成文字就更加困难,有时甚至有“茶壶煮饺子”的感觉。好在自己还算是一个有毅力的人,零敲碎打、慢慢琢磨,把零碎的时间积累起来总算完成了这部作品,个中甘苦一言难尽。书名定为“探秘”,其意图在于不只是单纯地学习了解B∞ost库的用法,而是要更深入地探讨其内部的实现机制和原理,钻研其中的秘密所在。因此本书较之前作内容取舍和风格上略微有了些变化,不再是那些简单易用的组件,而是更偏重于C++深层次概念、高级工具、编译期的泛型编程和模板元编程,学习难度较《指南》有所提升,请读者阅读时留意。Boost程序库探秘—一深度解析C++准标准库前言拥抱C++11本书完成之时C++最新标准已经公布,C+0x被正式定名为C++11,增加了许多新的特性,例如nu1lptr、auto、 decltype、 attribute、 constexpr、 except、static assert、 unique_ptr、move语义、新式for循环、委托构造、增强的字符串语法、标准线程库等等。这些新特性对语言的改变有小有大,但总的来说是让C++变得更友好更容易使用了,新手和专家都可以从中找到自己喜欢的东西。虽然C++11大大增强了C++的能力,但不可否认它同时也增加了语言的复杂度、学习成本以及使用成本,而且目前编译器和开发工具的支持也还不完善,个人认为在短期内(一到两年)还无法在国内的生产环境中大范围普及。今后几年里C++11最可能的情况是与C++98并存,C++群体逐渐了解熟悉新的语言特性和新的标准厍,缓慢且平滑地由老标准过渡到新标准,而在这个过程中 Boost无疑会扮演一个相当重要的角色。作为¢++的“准”标准库,这些年 Boost在C++开发中的地位已经变得越来越重要,业已被广泛应用在实际产品中(用户包括 Adobe、Goog1e、 McAfee、SAP等大公司),众多高质量的组件不仅极大地扩展了C++98在各个领域的能力,更为C++98添加了许多只有在¢++11中才有的新特性,让我们的开发工作更加轻松、编写的代码更加优雅。 Boost也积极地参与到了C++11标准的实现中,许多库和概念早已经被接纳为C++11的一部分,比如bind、 function、 iterators、 random、 smart ptr、 unordered等,而其他的库也都为C++11到来做好了准备,可以立即应用到支持新标准的编译器。从这个意义上来讲,Boost是一个从C++98到C++1的最佳“引路人”,可以让我们以很低的成本无缝地过渡到C++11。C++和 Boost博大精深,虽然已经有十余年的实践经验,但作者仍有“高山仰止”之感。由于篇幅和精力所限,B∞ost中还有几个重量级库未能探究,包括语法解析器 spirit、元状态机msm、函数式编程 phoenix、预处理元编程 prep。 cessor和预处理器wave,希望今后的某个时候能够有机会把这些库结合最新的C++11标准展示给读者。致谢首先仍然要感谢整个C++群体和 Boost社区,感谢他们长久以来的坚持和努力,让C++和 Boost变得越来越美好。Boost程序库探秘—深度解析C++准标准库前言其次我要感谢我的家人:我的父母、弟弟、妻子,感谢你们对我写作工作的支持,你们永远是我生命中最重要的人;特别要感谢已经三岁的女儿,你是我生命中的小天使,愿你永远快乐,这本书是送给你的礼物。最后感谢读者选择本书,还有那句“真心”的套话:限于作者水平有限,书中错漏在所难免,敬请批评指正罗剑锋2011年11月2日于北京三里屯Boost程序库探秘——深度解析C++准标准库目录第0章导读126元数据转换21,曹出世道虚日12.7解析函数元数据…2501关于本书1.28实现原理………………2602读者对象……………………21.29应用示例2803本书的风格13总结…2904本书的开发环境0.5本书的结构……第2章实用工具310.6如何阅读本书2.1 compressed pair31第1章模板元编程(Ⅰ)21.1什么是空类7212类摘要……………331.1模板元编程概述………2.1.3构造与赋值1.1.1元数据82.1.4用法351.12元函数……92.1.5实现原理………………………361.13元函数转发…………………………102.1.6功能扩展…371.14方便的工具2.2 checked delete…401.1.5应用示例……221函数的用法411.2 type traits……14222函数对象的用法…421.2.1概述2.23带检查的删除……441.2.2元数据类别(I)224实现原理451512.3元数据类别(I)225使用建议47172.3 addressof…1.24元数据属性……4723.1用法…125元数据之间的关系2023.2实现原理19Boost程序库探秘—深度解析C艹+准标准库ⅥI目录2.3.3使用建议…493.14标准迭代器工具………………8324 value initialized…………………503.1.5迭代器与算法…24.1变量的初始化…503.2 next prior……………842.4.2 initializedet321函数声明…85243用法3.22用法…………852. 4. 4 value initialized3.3 iterator traits……………………87245更方便的用法…331标准迭代器特征类………872.5 base from member……543.32类摘要……2.51类摘要……………………………54333用法89252用法………15534 iterator facade………253进一步的用法…34.I迭代器的核心操作…902.6 conversion34.2类摘要9026.1标准转型操作符…343用法…262多态对象的转型3.5 iterator adaptor………2.6.3 polymorphic downcast-.613.51类摘要2.6. 4 polymorphic cast…623.52用法……2.6.5使用模板元编程实现转型……6336迭代器工具-……2.7 numerIc/ conversion……………66361共享容器迭代器……9928 pointer…………………………67362发生器迭代器1022.8.1pointee……67363逆向迭代器2.8.2 indirect reference. a44s. 693.64间接迭代器………l0528.3 pointer to other…………693.65计数迭代器2.8.4 compare pointees70366函数输入迭代器…………102.9 scope exit……………72367函数输出迭代器……………11329.1用法368过滤迭代器…11529.2应用示例…………733.69转换迭代器…………………118293实现原理…7436.10索引迭代器………………119294注意事项……753611组合迭代器………121210总结…………………763.7总结………………"124第3章迭代器…第4章函数对象………"1273.1迭代器概述…………………794.1hash……1273.1.1迭代器模式794.1.1类摘要…1283.12标准迭代器…………4.1.2用法………1293.1.3新式迭代器…4.13实现原理…130Boost程序库探秘—深度解析C+准标准库目录VII4.14扩展hash………13155 ptr deque…4.2 mem fi134551类摘要421工作原理………4552用法171422用法1345.6ptr_list………172423其他议题…1365.1类摘要…曾十量·,!…1724.3 factory………………137562用法……17343.1类摘要1385.7 ptr array…1744.3.2用法138571类摘要1744.3.3 value factory……1415.72用法…………175434使用 typeof库5.8 ptr circular_ buffer……4.4 forward……………142581类摘要441类摘要………………142582用法…4.4.2用法………1435.9空指针处理………………1794.5总结……145591禁用空指针………………179592允许空指针179第5章指针容器………………147593使用空指针…18151概述…l47594空对象模式………1825.1.1入门示例…1485.10关联指针容器的共通能力……1845.1.2指针容器的优缺点l515.101类摘要……184513可克隆概念5.10.2接口解说……185514克隆分配器…1535.1集合指针容器适配器18651.5指针容器的分类……154511配置元函数18652指针容器的共通能力l575.11.2 ptr set adapter………………18752.1模板参数……1575.11.3 ptr multiset adapter…………188522构造与赋值…………595. 12 ptr set Nl ptr multiset189523访问元素………:1605.12.1类摘要……189524其他能力………………1625.122用法19053序列指针容器适配器1635.13 ptr unordered set l ptr5.31配置元函数……63unordered multiset………191532类摘要…………645,13.1类摘要……191533接口解说…1665.13.2用法……193534代码示例……166514映射指针容器适配器…………1954 ptr vector………………514.1配置元函数194541类摘要……………1685.14.2 ptr map adapter.195542用法…169514.3ptr_ multimap adapter……197Boost程序库探秘—深度解析C++准标准库
用户评论