boost 很有必要學習。boost 有很多好用的元件,可以作為基本積木塊來構建自己的專案。這樣隨手就用,不用自己花費很多時間精力去土法練鋼,還只練出個鐵渣。比如 noncopyable、字串演算法、format、pool、xpressive、flat_map 等等都是很實用的。function,bind,lambda, shared_ptr,auto 等已經進入 C++ 11,用 boost 已經沒有必要了。 boost 的效能不需要擔心。 boost 唯一的問題包含太多的東西(這個是它優點也是缺點),太龐大了,直接包含到工程中不方便。 實際應用中,我都是將 boost 庫下載後放在本機的某個地方,之後建立一個 /boost 符號連結指向實際的路徑。就這樣在本機中配置一次,全部工程都可以用 boost 庫了。專案組的成員也就做一次,也不算麻煩。boost 庫的具體普及情況我不清楚,至少我之前的公司是可以使用的。 boost 很多庫都可以直接包含標頭檔案就可以使用。而一些庫需要編譯,但分平臺編譯比較麻煩,建議建立一個 boost_pre_build.cpp 檔案,將一些需要編譯的 boost cpp檔案直接包含進去。比如
boost 很有必要學習。boost 有很多好用的元件,可以作為基本積木塊來構建自己的專案。這樣隨手就用,不用自己花費很多時間精力去土法練鋼,還只練出個鐵渣。比如 noncopyable、字串演算法、format、pool、xpressive、flat_map 等等都是很實用的。function,bind,lambda, shared_ptr,auto 等已經進入 C++ 11,用 boost 已經沒有必要了。 boost 的效能不需要擔心。 boost 唯一的問題包含太多的東西(這個是它優點也是缺點),太龐大了,直接包含到工程中不方便。 實際應用中,我都是將 boost 庫下載後放在本機的某個地方,之後建立一個 /boost 符號連結指向實際的路徑。就這樣在本機中配置一次,全部工程都可以用 boost 庫了。專案組的成員也就做一次,也不算麻煩。boost 庫的具體普及情況我不清楚,至少我之前的公司是可以使用的。 boost 很多庫都可以直接包含標頭檔案就可以使用。而一些庫需要編譯,但分平臺編譯比較麻煩,建議建立一個 boost_pre_build.cpp 檔案,將一些需要編譯的 boost cpp檔案直接包含進去。比如
包含太多的 cpp 檔案,符號可以會衝突,就多建一個 boost_pre_build_1.cpp,將一些 boost cpp 分開。這樣做雖然粗暴,但比自己去折騰編譯要省很多時間。比如需要在 iOS 專案中使用。 很多 boost 庫採用 STL 的風格,需要 STL 的基礎。建議先用好 STL 再去看 boost。 boost 太龐雜。boost 更準確的說,並不是一個庫,而是一個庫集合。不用每個都去看。應該先快速翻閱一些簡介,只需要瞭解一下有什麼庫,每個庫大概是做什麼東西的。之後碰到問題再細看具體的庫用法。應該直接使用,千萬千萬不要去分析它的原始碼,那個是無底洞。