# Part I: 通用库
> 要给本书的这一部分起一个合适的名字并不容易。本书的结构是围绕各个不同领域(如容器和高级编程),那些名字都好取;除了这一部分,它包括一些我们经常用到的东西:智能指针、类型转换工具等等。
>
> 总不能一开始第一部分就叫Miscellaneous, 或者 Ubiquitous, 或者 Frequently Used Libraries. 虽然它们的确就是这些东西,但这些名字并不能真正表达它们的重要性。因此,我决定命名为General Libraries, 希望可以表示出它们的无所不在。
>
> 一件经常困扰我的事情就是我们关注那些"简单"工具的方式,你应该同意它们是很有用的。在很多书 和文章中,它们都得到了很大的关注,但令人奇怪的是,在为产品代码选择工具(或创建工具)时,它们又往往被低估了。这是因为我们认为这些小组件太简单了 吗?我们是否从根本上就忽略了类似组件的灵活性可以很容易地实现,而是为适应每个问题而手工去重做?如果这些是真的,我们这样做就错了。如果程序中有两百 万个智能指针的实现,会使得智能指针在效率和可靠性方面都很危险。一个程序中有二十个不同的通用类型转换的实现同样也会花掉不少的代码时间,但更重要的是 这样的代码会很难维护。系统应该由多层的抽象组成,底层通常由数据结构、算法和工具组成。如果你同意这一点,想一想这些小的、无关重要的、被忽视的工具发 生变更时的影响,或者是程序缺陷,或者是没有保证的坚固性。这些小工具是船,承载着我们程序的纹理进行交换。它们是我们的逻辑引擎中的油,是我们的隔板间 的胶水。够了,我们应该给予它们应用的信任,不是吗?我们将在这里讨论多个通用库,包括智能指针, 转换 (包括类型转换和文字的转换), 正则表达式, 操作符, 静态断言等等。
- 序
- 前言
- Acknowledgments
- 关于作者
- 本书的组织结构
- Boost的介绍
- 字符串及文本处理
- 数 据结构, 容器, 迭代器, 和算法
- 函数对象及高级编程
- 泛 型编程与模板元编程
- 数学及数字处理
- 输入/输出
- 杂项
- Part I: 通用库
- Library 1. Smart_ptr
- Smart_ptr库如何改进你的程序?
- 何时我们需要智能指针?
- Smart_ptr如何适应标准库?
- scoped_ptr
- scoped_array
- shared_ptr
- shared_array
- intrusive_ptr
- weak_ptr
- Smart_ptr总结
- Library 2. Conversion
- Conversion 库如何改进你的程序?
- polymorphic_cast
- polymorphic_downcast
- numeric_cast
- lexical_cast
- Conversion 总结
- Library 3. Utility
- Utility 库如何改进你的程序?
- BOOST_STATIC_ASSERT
- checked_delete
- noncopyable
- addressof
- enable_if
- Utility 总结
- Library 4. Operators
- Operators库如何改进你的程序?
- Operators
- 用法
- Operators 总结
- Library 5. Regex
- Regex库如何改进你的程序?
- Regex 如何适用于标准库?
- Regex
- 用法
- Regex 总结
- Part II: 容器及数据结构
- Library 6. Any
- Any 库如何改进你的程序?
- Any 如何适用于标准库?
- Any
- 用法
- Any 总结
- Library 7. Variant
- Variant 库如何改进你的程序?
- Variant 如何适用于标准库?
- Variant
- 用法
- Variant 总结
- Library 8. Tuple
- Tuple 库如何改进你的程序?
- Tuple 库如何适用于标准库?
- Tuple
- 用法
- Tuple 总结
- Part III: 函数对象与高级编程
- Library 9. Bind
- Bind 库如何改进你的程序?
- Bind 如何适用于标准库?
- Bind
- 用法
- Bind 总结
- Library 10. Lambda
- Lambda 库如何改进你的程序?
- Lambda 如何适用于标准库?
- Lambda
- 用法
- Lambda 总结
- Library 11. Function
- Function 库如何改进你的程序?
- Function 如何适用于标准库?
- Function
- 用 法
- Function 总结
- Library 12. Signals
- Signals 库如何改进你的程序?
- Signals 如何适用于标准库?
- Signals
- 用法
- Signals 总结