# 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 總結