Boost C++ 函式庫（Libraries）是一組擴充 C++ 功能的經過同行評審（Peer-reviewed）且開放原始碼程式庫。大多數的函式為了能夠以開放原始碼或者封閉專案的方式運作，而授權於 Boost 軟體授權條款（Boost Software License）之下。許多 Boost 的開發人員是來自 C++ 標準委員會，而部份的 Boost 函式庫成為 C++ 的 TR1 標準之一。

為了要確保函式庫的效率與彈性，Boost 廣泛的使用模板（template）功能。而它是針對各式領域的 C++ 使用者與應用領域（Application Domain）上，包含的函式庫類別從像 smart\_ptr 函式庫（頁面存檔備份，存於網際網路檔案館）這種類通用函式庫，到像是檔案系統的作業系統抽象層，甚至能夠利用 Boost 來開發額外的函式庫或是給進階的 C++ 使用者利用，像是 MPL（頁面存檔備份，存於網際網路檔案館）。



內容


* 演算法

* 平行計算
  
* thread（頁面存檔備份，存於網際網路檔案館） - 執行緒
  
* context（頁面存檔備份，存於網際網路檔案館） - 使用者層級上下文交換

* 容器
  
* array（頁面存檔備份，存於網際網路檔案館） - STL 的陣列容器
  
* Boost Graph Library (BGL)（頁面存檔備份，存於網際網路檔案館） - 通用的圖容器，組件和演算法
  
* multi-array（頁面存檔備份，存於網際網路檔案館） - N 維陣列
  
* multi-index containers（頁面存檔備份，存於網際網路檔案館） - 多索引容器
  
* pointer containers（頁面存檔備份，存於網際網路檔案館） - 指標容器
  
* property map - 屬性 Map
  
* variant（頁面存檔備份，存於網際網路檔案館） - 安全的，基於泛型的，支援存取者模式的聯合
  
* fusion（頁面存檔備份，存於網際網路檔案館） - 基於 tuple 的容器和演算法集合

* 正當性與測試
  
* concept check（頁面存檔備份，存於網際網路檔案館） - 檢查模板參數是否滿足模板的要求
  
* static assert（頁面存檔備份，存於網際網路檔案館） - 編譯期的斷言檢查
  
* Boost Test Library - C++ 單元測試框架

* 資料結構
  
* dynamic\_bitset（頁面存檔備份，存於網際網路檔案館） - `std::bitset-` 的動態轉型

* 仿函式與高階函式（含無名関數）
  
* bind（頁面存檔備份，存於網際網路檔案館） and mem\_fn（頁面存檔備份，存於網際網路檔案館） - 函式的綁定
  
* function（頁面存檔備份，存於網際網路檔案館） - 函式。
  
* functional（頁面存檔備份，存於網際網路檔案館） - C++ 標準函式之強化。包含以下的內容。
    
* function object traits（頁面存檔備份，存於網際網路檔案館）
    
* negators（頁面存檔備份，存於網際網路檔案館）
    
* binders（頁面存檔備份，存於網際網路檔案館）
    
* adapters for pointers to functions（頁面存檔備份，存於網際網路檔案館）
    
* adapters for pointers to member functions（頁面存檔備份，存於網際網路檔案館）
  
* hash（頁面存檔備份，存於網際網路檔案館） - C++ Technical Report 1（TR1）定義的雜湊表
  
* lambda（頁面存檔備份，存於網際網路檔案館） - λ 演算的實作
  
* ref（頁面存檔備份，存於網際網路檔案館） - 標準 C++ 參照（call by reference）的加強、特別強化與函式的呼叫
  
* result\_of（頁面存檔備份，存於網際網路檔案館） - 函式型別與回傳值
  
* signals2（頁面存檔備份，存於網際網路檔案館） - 訊號和槽回呼的實現代管

* 泛型

* 圖

* I/O

* 語言之間的支援（Python 用）

* 迭代器
  
* iterators（頁面存檔備份，存於網際網路檔案館）
  
* operators（頁面存檔備份，存於網際網路檔案館）
  
* tokenizer（頁面存檔備份，存於網際網路檔案館）

* 數學和計算

* 記憶體（memory）
  
* pool（頁面存檔備份，存於網際網路檔案館） - 記憶體池，boost 提供 4 種記憶體池模型供使用：pool、object\_pool、singleton\_pool、pool\_allocator/fast\_pool\_allocator
  
* smart\_ptr（頁面存檔備份，存於網際網路檔案館） - boost 的 smart\_ptr 中提供了 4 種智慧型指標，作為 std::auto\_ptr 的補充
    
* scoped\_ptr - 具作用域指標，與 std::auto\_ptr 類似，但不能轉讓所有權，用於確保離開作用域能夠正確地刪除動態分配的物件
    
* scoped\_array - 配合 scoped\_ptr 使用
    
* shared\_ptr -
    
* shared\_array - 配合 shared\_ptr 使用
    
* weak\_ptr - shared\_ptr 的觀察者，避免 shared\_ptr 迴圈參照，是一種輔助指標
    
* intrusive\_ptr - 比 shared\_ptr 更好的智慧型指標
  
* utility（頁面存檔備份，存於網際網路檔案館） - 以下是 utility 類型的定義。
    
* base from member idiom -
    
* checked delete（頁面存檔備份，存於網際網路檔案館） - 保證在摧毀一個物件時，必須對該物件的類型有充份了解
    
* next and prior functions（頁面存檔備份，存於網際網路檔案館） -
    
* noncopyable（頁面存檔備份，存於網際網路檔案館） - 把 copy constructor 和 assign operaotr 宣告為 private，不加以實現
    
* addressof（頁面存檔備份，存於網際網路檔案館） - 用於獲得變數的位址
    
* result\_of（頁面存檔備份，存於網際網路檔案館） - 指涉函式回返型別

* 序列化

* 語法剖析器

* 預處理元程式設計

* 字串與文字處理（正規表示式等）
  
* lexical\_cast - lexical\_cast 類別模板
  
* format（頁面存檔備份，存於網際網路檔案館） - 文字格式化，類似 printf
  
* iostreams（頁面存檔備份，存於網際網路檔案館） - 新式 iostream 的補強
  
* regex - 正規表示法（Regular expression）
  
* Spirit - 根據 EBNF 規則對檔案進行分析
  
* string algorithms（頁面存檔備份，存於網際網路檔案館） - 文字列演算法
  
* tokenizer（頁面存檔備份，存於網際網路檔案館） - 把字串序列分解成一系列標記（tokens）
  
* wave（頁面存檔備份，存於網際網路檔案館） -

* 模板元程式設計（Template Metaprogramming）
  
* mpl（頁面存檔備份，存於網際網路檔案館） - 模板元程式設計框架
  
* static assert（頁面存檔備份，存於網際網路檔案館） - 靜態斷言
  
* type traits - 型別的基本屬性的模板

* 其他



範例

現有的 Boost 包含大約 150 種不同的函式庫，以下面幾項做範例：

線性代數 – uBLAS

Boost 包含了 uBLAS 線性代數函式庫，能夠藉由基本函式庫子函式（BLAS）來支持向量與矩陣形運算。


* 此範例表示如何矩陣與向量作乘積：

亂數產生 – Boost.Random

Boost 也提供獨立分布的類比隨機與 PRNG 獨立性的機率分布，而這些能夠具體的建立產生器。


* 此範例表示如何使用 Mersenne Twister 演算法來產生隨機

更詳細的說明請參閱 Boost 亂數庫（頁面存檔備份，存於網際網路檔案館）。

多執行緒 – Boost.Thread

範例碼演示建立執行緒：


* Introduction to Boost.Threads（頁面存檔備份，存於網際網路檔案館） in Dr. Dobb's Journal. (2002)

* Boost.Threads API reference（頁面存檔備份，存於網際網路檔案館）。

* threadpool library（頁面存檔備份，存於網際網路檔案館） based on Boost.Thread



參照



外部連結


* Boost 官方網站（頁面存檔備份，存於網際網路檔案館）

* Smart Pointers to boost your code

* Building Boost libraries（頁面存檔備份，存於網際網路檔案館）

* Boost 中文翻譯（頁面存檔備份，存於網際網路檔案館） 線上閱讀