1. 程式人生 > >幾個值得一用的boost庫

幾個值得一用的boost庫

boost是一個由很多其它庫組成的集合,它跨平臺,並且在各種編譯器上都表現不錯。更為重要的是,這些庫的作者與C++標準委員會有密切的聯絡,說不定那一天就成為標準庫的一部分,這樣一來,學習它的投資成效會大很多。目前,boost已經有相當數量的庫存在了,大的有像gil這種特定領域的庫,小的有像array這種工具庫,全部學完是需要很多時間成本的。不過,實際環境中大不不必為使用boost而使用boost。除了boost本身是個龐大的傢伙外,引入外部庫也會增加他人的維護成本。我根據自己的經驗,整理了一些比較實用的庫,可以重點學習。

  • asio 這個庫是一個跨平臺的網路庫,封裝了一些socket函式。即使不開發跨平臺的網路程式,還是建議使用它。它將程式設計師從一些繁瑣的事務中解脫出來,此外它採用的Proactor設計模式也是相當優秀的。如果你寫的是小型的socket程式,用它不僅會減少工作量,而且效率也很好。
  • bind STL裡提供的那些繫結函式比起它來說差遠了。我個人是經常使用STL的演算法庫,所以對其依賴較大。
  • smart_ptr 記憶體自動回收是現代高階語言發展的趨勢,而C++在這方面有所保留。比較典型的情況是,記憶體分配後在多個地方使用,卻無法得知什麼時候可以釋放。“誰分配,誰釋放”,如果邊界不清晰,只有口頭協商的辦法,在團隊開發中這並不總是有效的。推薦在後一種情況出現是使用。更多場景參考這篇文章
  • function 函式程式設計在很多語言裡非常流行,實際開發中也確實能帶來很多優點,比如可讀性好,程式碼簡潔。我們鼓勵寫出“優美”的程式碼。
另外,還有些庫作為工具庫也不錯,比如thread,regex
等,lambda是一個很有想法的實現,缺點是語法過於晦澀。 以上是我個人在使用中覺得不錯的,如果有新的會繼續補充。