Boost C++ 函式庫

...全世界最受推崇且設計精良的 C++ 函式庫專案之一。 Herb SutterAndrei Alexandrescu,《C++ 程式碼規範

Boost 常見問答

如何下載函式庫? 請參閱下載頁面。

Boost 版本號碼的意義為何? 版本號碼的格式為 x.y.z,其中 x 只在重大變更時遞增,例如許多函式庫的重組;y 在新增函式庫時遞增;z 則在維護版本發佈時遞增。如果左邊的值發生變化,y 和 z 會重置為 0。

有什麼保證函式庫真的如同宣稱般運作嗎? 沒有。審查流程希望能排除掉最嚴重缺陷的函式庫,但一個建構良好卻隱藏缺陷的函式庫還是有可能通過。鼓勵一般使用者回報他們使用函式庫的經驗,就是為了處理這類的疑慮。請參考測試結果,以了解函式庫在特定平台上的運作狀況。

如何在重要的專案中成功使用 Boost 函式庫? 許多 Boost 函式庫都積極維護和改進,因此不見得能永遠與先前版本保持向下相容。解決這個問題的方法是固定專案所使用的 Boost 函式庫版本。只在專案生命週期的特定時間點升級,此時些許的變更不會造成問題。個別的錯誤修正則可以隨時從 Boost 儲存庫取得。

我如何參與開發? 要參與開發,您需要訂閱Boost 開發者郵件論壇。完成後,您可以透過以下幾種方式貢獻:

  1. 提交新功能或錯誤修正的補丁。從 GitHub 上的我們的錯誤追蹤系統中挑選任何一個問題單,然後開始著手進行。如果現有的函式庫維護者還不熟悉您的工作,這是讓他們認識您,並信任您能做好工作的好方法。
  2. 加入特定函式庫的社群,並透過參與設計討論讓函式庫維護者認識您(某些函式庫,例如 Spirit,有自己的郵件論壇可以進行討論)。
  3. 提出您自己的函式庫構想,並開始函式庫提交流程

函式庫如何被接受並發佈到網站上? 請參閱函式庫提交流程

如何提交正式審查的意見? 請發送電子郵件至 boost@lists.boost.org。更多資訊請參閱正式審查頁面。

如何提交函式庫? 請參閱函式庫準則

是否接受需要付費的商業函式庫? 不接受。然而,商業企業免費提供的函式庫是可以接受的。如果函式庫的描述中低調地提及了供應商,只要函式庫本身具有真正的價值,而不是單純作為廣告的幌子,則是可以接受的。

是否接受共享軟體函式庫? 不接受。只接受免費的函式庫。

開放原始碼授權的函式庫可以接受嗎?有些可以,很多不行。開放原始碼授權通常要求重新發佈或提供原始碼、在機器可執行檔的重新發佈中包含授權文件、賦予初始開發者對被授權者修改的權利,或者需要律師才能理解。Boost 的目標是避免讓使用者受到難以遵守的授權條款的約束。請參閱授權要求

對於特別重要的軟體,或者隨著產業的變化,這一點會受到審查。

是否必須提供完整的原始碼?是的,這些是原始碼函式庫。

文件方面呢?一個非常簡單的函式庫可能只需要一個註釋良好的標頭檔就可以被接受。對於更為龐大的函式庫,肯定會需要某種形式的文件。HTML 是首選格式。

平台特定的函式庫可以接受嗎?我們偏好可移植的函式庫。只要作者能提供幾個不同主要作業系統的實作,具有可移植介面但需要平台特定實作的函式庫也會被接受。

函式庫必須執行有用的工作嗎?不。作為教學範例或演示的函式庫可能實際上不做任何工作。

現有的函式庫可以被 Boost 接受嗎?可以,儘管它必須經過「Boost 化」以符合要求。Boost Graph 和 Regex 函式庫就是起源於其他地方的例子。

誰擁有這些函式庫?許多作者可能會為他們的函式庫申請版權。其他作者則可能希望將他們的函式庫置於公共領域。Boost.org 的政策是只接受具有明確版權聲明且符合授權要求的函式庫。潛在使用者應自行決定條款是否可接受,並且不要使用具有不可接受的版權或授權的函式庫。

Boost.org 與 C++ 標準委員會之間是否存在正式關係?沒有,儘管兩者之間存在著強烈的非正式關係,因為委員會的許多成員都參與了 Boost,而且創立 Boost 的人都是委員會成員。

Boost.org 的函式庫會成為下一個 C++ 標準的一部分嗎?有些函式庫可能在未來的某一天會,但这取决于标准委员会。同時參與 Boost 的委員會成員肯定會提議將至少一些 Boost 函式庫標準化。

「既有實務」的函式庫最有可能被 C++ 委員會接受,以作為未來的標準。讓函式庫被 Boost 接受是建立既有實務的一種方式。

「Boost」這個名稱的由來是什麼?Boost 的起源於 1998 年在法國索菲亞科技園舉行的 C++ 委員會會議上,Robert Klarer 和我在晚餐時幻想著一個新的函式庫計畫。Robert 提到 Herb Sutter 正在撰寫一個名為 Booze 的新語言的惡搞提案,據說它比 Java 更好。不知何故,這就引發了用「Boost」作為名稱的想法。當時我們可能已經喝了幾杯優質的法國葡萄酒。它只是一個暫定的名稱,但沒有人想出替代方案。(Beman Dawes)

這個網站是一個商業企業嗎?不是。Boost 基金會是一個非營利組織,目前正在申請 503(c)(3) 免稅資格。

向 Boost.org 提交函式庫或審查需要付費嗎?不用。不像標準委員會,您不必付費就能成為志願者!

這個網站除了函式庫之外,還會包含其他資料嗎?主要重點是函式庫,但如果人們貢獻一些文章或其他資料,讓網站更有趣,那也蠻合適的。

為什麼沒有針對我最喜歡的函式庫設置單獨的 Boost 郵件列表? Boost 成功的原因之一是不同函式庫專案之間的思想交流,以及偶爾會有原本不感興趣的人瀏覽其他主題。參與的人越多,他們就越不容易被「雜訊」干擾。

我該如何處理大量的 Boost 郵件列表訊息?一種方法是使用「摘要」選項;這會將大量的電子郵件減少到每天幾封(長)訊息,這樣您就可以瀏覽頂部的標題摘要,並快速閱讀您認為重要的內容。「無郵件」選項則會完全關閉列表郵件。

另一種方法是透過 NTTP 新聞群組閱讀器追蹤列表動態。請參閱郵件列表新聞群組資訊。

為什麼 Boost 標頭檔使用 .hpp 後綴,而不是 .h 或完全不使用後綴?檔案副檔名會向人和電腦程式傳達檔案的「類型」。'.h' 副檔名用於 C 標頭檔,因此對於 C++ 標頭檔來說傳達了錯誤的訊息。不使用副檔名則沒有傳達任何訊息,並且需要檢查檔案內容才能確定類型。使用 '.hpp' 可以明確地將其識別為 C++ 標頭檔,並且在實際應用中效果良好。(Rainer Deyke)

如果我發現 Boost 程式碼或文件中存在錯誤,該怎麼辦?請參閱錯誤頁面上的建議。

我如何請求在 Boost 函式庫中新增功能?請參閱請求新功能頁面。

Boost 是誰的主意?請參閱原始提案(PDF)。