程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Item 55:熟悉一下Boost

Item 55:熟悉一下Boost

編輯:關於C++

Item 55: Familiarize yourself with Boost.

Boost是一個C++開發者的社區,作為C++標准的試驗場, 收容了很多高質量、開源的、跨平台、獨立於編譯器的C++庫, 包括許多TR1組件的實現。

Boost是其他C++組織和社區所不能比擬的:

  • 與C++標准委員會的親近關系。Boost社區成員和C++標准委員會成員有很大的交集。 多數C++下一代標准都來自於Boost社區。
  • 特殊的項目接收流程。首先在郵件列表中提出它,然後開啟整個流程: 討論、優化、重新提交,直到滿意。

    Boost社區中的庫千差萬別,較小的庫(比如Convention)除了錯誤處理和跨平台外只有幾行代碼; 較大的庫(比如Boost Graph Library、Boost MPL Library) 卻需要整本的書來寫它們。這些庫可以分為以下幾個大的類別:

    • 字符串和文本處理。類型安全的printf、正則表達式、 分詞(tokenizing)、轉換(parsing)。
    • 容器。STL風格的固定大小數組、可變大小的Bitset、多維數組。
    • 函數對象和高階編程。比如有趣的Lambda庫:

      cpp using namespace boost::lambda; std::vector v; std::for_each(v.begin(), v.end(), std::cout<< _1 * 2 + 10 << "\n");

      _1 是 Lambda 庫的占位符,表示當前元素

    • 泛型編程。包括一套可擴展的traits類,見Item 47。
    • 模板元編程(TMP,見Item 48)。
    • 數值計算。包括有理數、八元數、最大公約數、最小公倍數等。
    • 正確性和測試。隱式模板接口的形式化和測試驅動編程。
    • 數據結構。包括類型安全的聯合體、元組。
    • 跨語言支持。比如C++和Python提供無縫互操作性的庫。
    • 內存。如固定大小內存池的分配器。
    • 雜項。CRC檢查、時間日期操作、文件系統遍歷等。

      也有一些程序設計領域的東西並不在Boost裡面, 比如GUI開發、數據庫連接等。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved