boost分类
按照實(shí)現(xiàn)的功能,Boost可為大致歸入以下20個(gè)分類,在下面的分類中,有些庫同時(shí)歸入幾種類別。
字符串和文本處理庫
a) Conversion庫:對C++類型轉(zhuǎn)換的增強(qiáng),提供更強(qiáng)的類型安全轉(zhuǎn)換、更高效的類型安全保護(hù)、進(jìn)行范圍檢查的數(shù)值轉(zhuǎn)換和詞法轉(zhuǎn)換。
b) Format庫:實(shí)現(xiàn)類似printf的格式化對象,可以把參數(shù)格式化到一個(gè)字符串,而且是完全類型安全的。
c) IOStream庫 :擴(kuò)展C++標(biāo)準(zhǔn)庫流處理,建立一個(gè)流處理框架。
d) Lexical Cast庫:用于字符串、整數(shù)、浮點(diǎn)數(shù)的字面轉(zhuǎn)換。
e) Regex 庫:正則表達(dá)式,已經(jīng)被TR1所接受。
f) Spirit庫:基于EBNF范式的LL解析器框架
g) String Algo庫:一組與字符串相關(guān)的算法
h) Tokenizer庫:把字符串拆成一組記號(hào)的方法
i) Wave庫:使用spirit庫開發(fā)的一個(gè)完全符合C/C++標(biāo)準(zhǔn)的預(yù)處理器
j) Xpressive 庫:無需編譯即可使用的正則表達(dá)式庫
容器庫
a) Array 庫:對C語言風(fēng)格的數(shù)組進(jìn)行包裝
b) Bimap 庫:雙向映射結(jié)構(gòu)庫
c) Circular Buffer 庫:實(shí)現(xiàn)循環(huán)緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)
d) Disjoint Sets庫 :實(shí)現(xiàn)不相交集的庫
e) Dynamic Bitset 庫:支持運(yùn)行時(shí)調(diào)整容器大小的位集合
f) GIL 庫:通用圖像庫
g) Graph 庫:處理圖結(jié)構(gòu)的庫
h) ICL 庫:區(qū)間容器庫,處理區(qū)間集合和映射
i) Intrusive 庫:侵入式容器和算法
j) Multi-Array 庫:多維容器
k) Multi-Index 庫:實(shí)現(xiàn)具有多個(gè)STL兼容索引的容器
l) Pointer Container 庫:容納指針的容器
m) Property Map 庫:提供鍵/值映射的屬性概念定義
n) Property Tree 庫:保存了多個(gè)屬性值的樹形數(shù)據(jù)結(jié)構(gòu)
o) Unordered 庫:散列容器,相當(dāng)于hash_xxx
p) Variant 庫:簡單地說,就是持有string, vector等復(fù)雜類型的聯(lián)合體
迭代器庫
a) GIL 庫:通用圖像庫
b) Graph 庫:處理圖結(jié)構(gòu)的庫
c) Iterators 庫:為創(chuàng)建新的迭代器提供框架
d) Operators 庫:允許用戶在自己的類里僅定義少量的操作符,就可方便地自動(dòng)生成其他操作符重載,而且保證正確的語義實(shí)現(xiàn)
e) Tokenizer 庫:把字符串拆成一組記號(hào)的方法
算法庫
a) Foreach庫:容器遍歷算法
b) GIL庫:通用圖像庫
c) Graph庫:處理圖結(jié)構(gòu)的庫
d) Min-Max庫:可在同一次操作中同時(shí)得到最大值和最小值
e) Range庫:一組關(guān)于范圍的概念和實(shí)用程序
f) String Algo庫:可在不使用正則表達(dá)式的情況下處理大多數(shù)字符串相關(guān)算法操作
g) Utility庫:小工具的集合
函數(shù)對象和高階編程庫
a) Bind庫:綁定器的泛化,已被收入TR1
b) Function庫:實(shí)現(xiàn)一個(gè)通用的回調(diào)機(jī)制,已被收入TR1
c) Functional庫:適配器的增強(qiáng)版本
d) Functional/Factory庫:用于實(shí)現(xiàn)靜態(tài)和動(dòng)態(tài)的工廠模式
e) Functional/Forward庫:用于接受任何類型的參數(shù)
f) Functional/Hash庫:實(shí)現(xiàn)了TR1中的散列函數(shù)
g) Lambda庫:Lambda表達(dá)式,即未命名函數(shù)
h) Member Function庫:是STL中mem_fun和mem_fun_ref的擴(kuò)展
i) Ref庫:包裝了對一個(gè)對象的引用,已被收入TR1
j) Result Of庫:用于確定一個(gè)調(diào)用表達(dá)式的返回類型,已被收入TR1
k) Signals庫:實(shí)現(xiàn)線程安全的觀察者模式
l) Signals2庫:基于Signal的另一種實(shí)現(xiàn)
m) Utility庫:小工具的集合
n) Phoenix庫:實(shí)現(xiàn)在C++中的函數(shù)式編程。
泛型編程庫
a) Call Traits庫:封裝可能是最好的函數(shù)傳參方式
b) Concept Check庫:用來檢查是否符合某個(gè)概念
c) Enable If庫:允許模板函數(shù)或模板類在偏特化時(shí)僅針對某些特定類型有效
d) Function Types庫:提供對函數(shù)、函數(shù)指針、函數(shù)引用和成員指針等類型進(jìn)行分類分解和合成的功能
e) GIL庫:通用圖像庫
f) In Place Factory, Typed In Place Factory庫:工廠模式的一種實(shí)現(xiàn)
g) Operators庫:允許用戶在自己的類里僅定義少量的操作符,就可方便地自動(dòng)生成其他操作符重載,而且保證正確的語義實(shí)現(xiàn)
h) Property Map庫:提供鍵值映射的屬性概念定義
i) Static Assert庫:把斷言的診斷時(shí)刻由運(yùn)行期提前到編譯期,讓編譯器檢查可能發(fā)生的錯(cuò)誤
j) Type Traits庫:在編譯時(shí)確定類型是否具有某些特征
模板元編程
a) Function Types庫:提供對函數(shù)、函數(shù)指針、函數(shù)引用和成員指針等類型進(jìn)行分類分解和合成的功能
b) Fusion庫:提供基于tuple的編譯期容器和算法
c) MPL庫:模板元編程框架
d) Proto庫:構(gòu)建專用領(lǐng)域嵌入式語言
e) Static Assert庫:把斷言的診斷時(shí)刻由運(yùn)行期提前到編譯期,讓編譯器檢查可能發(fā)生的錯(cuò)誤
f) Type Traits庫:在編譯時(shí)確定類型是否具有某些特征
預(yù)處理元編程庫
a) Preprocessors庫:提供預(yù)處理元編程工具并發(fā)編程庫
a) Asio庫:基于操作系統(tǒng)提供的異步機(jī)制,采用前攝設(shè)計(jì)模式實(shí)現(xiàn)了可移植的異步IO操作
b) Interprocess庫:實(shí)現(xiàn)了可移植的進(jìn)程間通信功能,包括共享內(nèi)存、內(nèi)存映射文件、信號(hào)量、文件鎖、消息隊(duì)列等
c) MPI庫:用于高性能的分布式并行開發(fā)
d) Thread庫:為C++增加線程處理能力,支持Windows和POSIX線程
數(shù)學(xué)和數(shù)字庫
a) Accumulators庫:用于增量計(jì)算的累加器的框架
b) Integer庫:提供一組有關(guān)整數(shù)處理的類
c) Interval庫:處理區(qū)間概念的數(shù)學(xué)問題
d) Math庫:數(shù)學(xué)領(lǐng)域的模板類和算法
e) Math Common Factor庫:用于支持最大公約數(shù)和最小公倍數(shù)
f) Math Octonion庫 :用于支持八元數(shù)
g) Math Quaternion庫:用于支持四元數(shù)
h) Math/Special Functions庫:數(shù)學(xué)上一些常用的函數(shù)
i) Math/Statistical Distributions庫:用于單變量統(tǒng)計(jì)分布操作
j) Multi-Array庫:多維容器
k) Numeric Conversion庫:用于安全數(shù)字轉(zhuǎn)換的一組函數(shù)
l) Operators庫:允許用戶在自己的類里僅定義少量的操作符,就可方便地自動(dòng)生成其他操作符重載,而且保證正確的語義實(shí)現(xiàn)
m) Random庫:專注于偽隨機(jī)數(shù)的實(shí)現(xiàn),有多種算法可以產(chǎn)生高質(zhì)量的偽隨機(jī)數(shù)
n) Rational庫:實(shí)現(xiàn)了沒有精度損失的有理數(shù)
o) uBLAS庫:用于線性代數(shù)領(lǐng)域的數(shù)學(xué)庫
p) Geometry庫:用于解決幾何問題的概念、原語和算法。
q) Ratio庫:根據(jù)C++ 0x標(biāo)準(zhǔn)N2661號(hào)建議[1],實(shí)現(xiàn)編譯期的分?jǐn)?shù)操作。
排錯(cuò)和測試庫
a) Concept Check庫 :用來檢查是否符合某個(gè)概念
b) Static Assert庫:把斷言的診斷時(shí)刻由運(yùn)行期提前到編譯期,讓編譯器檢查可能發(fā)生的錯(cuò)誤
c) Test庫:提供了一個(gè)用于單元測試的基于命令行界面的測試套件
數(shù)據(jù)結(jié)構(gòu)庫
a) Any庫:支持對任意類型的值進(jìn)行類型安全的存取
b) Bimap庫:雙向映射結(jié)構(gòu)庫
c) Compressed Pair庫:優(yōu)化的對pair對象的存儲(chǔ)
d) Fusion庫:提供基于tuple的編譯期容器和算法
e) ICL庫:區(qū)間容器庫,處理區(qū)間集合和映射
f) Multi-Index庫:為底層的容器提供多個(gè)索引
g) Pointer Container庫:容納指針的容器
h) Property Tree庫:保存了多個(gè)屬性值的樹形數(shù)據(jù)結(jié)構(gòu)
i) Tuple庫:元組,已被TR1接受
j) Uuid庫:用于表示和生成UUID
k) Variant庫:有類別的泛型聯(lián)合類
圖像處理庫
a) GIL庫:通用圖像庫輸入輸出庫
a) Asio庫:基于操作系統(tǒng)提供的異步機(jī)制,采用前攝設(shè)計(jì)模式實(shí)現(xiàn)了可移植的異步IO操作
b) Assign庫:用簡潔的語法實(shí)現(xiàn)對STL容器賦值或者初始化
c) Format庫:實(shí)現(xiàn)類似printf的格式化對象,可以把參數(shù)格式化到一個(gè)字符串,而且是完全類型安全的
d) IO State Savers庫:用來保存流的當(dāng)前狀態(tài),自動(dòng)恢復(fù)流的狀態(tài)等
e) IOStreams庫:擴(kuò)展C++標(biāo)準(zhǔn)庫流處理,建立一個(gè)流處理框架
f) Program Options庫:提供強(qiáng)大的命令行參數(shù)處理功能
g) Serialization庫:實(shí)現(xiàn)C++數(shù)據(jù)結(jié)構(gòu)的持久化
跨語言混合編程庫
a) Python庫:用于實(shí)現(xiàn)Python和C++對象的無縫接口和混合編程內(nèi)存管理庫
a) Pool庫:基于簡單分隔存儲(chǔ)思想實(shí)現(xiàn)了一個(gè)快速、緊湊的內(nèi)存池庫
b) Smart Ptr庫:智能指針
c) Utility庫:小工具的集合
解析庫
a) Spirit庫:基于EBNF范式的LL解析器框架編程接口庫
a) Function庫:實(shí)現(xiàn)一個(gè)通用的回調(diào)機(jī)制,已被收入TR1
b) Parameter庫:提供使用參數(shù)名來指定函數(shù)參數(shù)的機(jī)制
綜合類庫
a) Compressed Pair庫:優(yōu)化的對pair對象的存儲(chǔ)
b) Conversion庫:對C++類型轉(zhuǎn)換的增強(qiáng),提供更強(qiáng)的類型安全轉(zhuǎn)換、更高效的類型安全保護(hù)、進(jìn)行范圍檢查的數(shù)值轉(zhuǎn)換和詞法轉(zhuǎn)換
c) CRC庫:實(shí)現(xiàn)了循環(huán)冗余校驗(yàn)碼功能
d) Date Time 庫:一個(gè)非常全面靈活的日期時(shí)間庫
e) Exception庫:針對標(biāo)準(zhǔn)庫中異常類的缺陷進(jìn)行強(qiáng)化,提供<<操作符重載,可以向異常傳入任意數(shù)據(jù)
f) Filesystem庫:可移植的文件系統(tǒng)操作庫,可以跨平臺(tái)操作目錄、文件,已被TR2接受
g) Flyweight 庫:實(shí)現(xiàn)享元模式,享元對象不可修改,只能賦值
h) Lexical Cast 庫:用于字符串、整數(shù)、浮點(diǎn)數(shù)的字面轉(zhuǎn)換
i) Meta State Machine庫:用于表示UML2有限狀態(tài)機(jī)的庫
j) Numeric Conversion 庫:用于安全數(shù)字轉(zhuǎn)換的一組函數(shù)
k) Optional 庫:使用容器的語義,包裝了可能產(chǎn)生無效值的對象,實(shí)現(xiàn)了未初始化的概念
l) Polygon 庫:處理平面多邊形的一些算法
m) Program Options庫:提供強(qiáng)大的命令行參數(shù)處理功能
n) Scope Exit庫:使用preprocessor庫的預(yù)處理技術(shù)實(shí)現(xiàn)在退出作用域時(shí)資源自動(dòng)釋放
o) Statechart庫:提供有限自動(dòng)狀態(tài)機(jī)框架
p) Swap庫:為交換兩個(gè)變量的值提供便捷方法
q) System庫:使用輕量級(jí)的對象封裝操作系統(tǒng)底層的錯(cuò)誤代碼和錯(cuò)誤信息,已被TR2接受
r) Timer庫:提供簡易的度量時(shí)間和進(jìn)度顯示功能,可以用于性能測試等需要計(jì)時(shí)的任務(wù)
s) Tribool庫:三態(tài)布爾邏輯值,在true和false之外引入indeterminate不確定狀態(tài)
t) Typeof庫:模擬C++0x新增加的typeof和auto關(guān)鍵字,以減輕變量類型聲明的工作,簡化代碼
u) Units庫:實(shí)現(xiàn)了物理學(xué)的量綱處理
v) Utility庫:小工具集合
w) Value Initialized庫:用于保證變量在聲明時(shí)被正確初始化
x) Chrono庫:實(shí)現(xiàn)了C++ 0x標(biāo)準(zhǔn)中N2661號(hào)建議[1]所支持的時(shí)間功能。
編譯器問題的變通方案庫
a) Compatibility庫:為不符合標(biāo)準(zhǔn)庫要求的環(huán)境提供幫助
b) Config庫:將程序的編譯配置分解為三個(gè)部分:平臺(tái)、編譯器和標(biāo)準(zhǔn)庫,幫助庫開發(fā)者解決特定平臺(tái)特定編譯器的兼容問題
總結(jié)
- 上一篇: 人工智能下的智慧运维实践一BIM 技术运
- 下一篇: 自学C4D 从入门到精通【学习视频教程全