[英]how do i get started using boost
我在這里聽到很多關於提升的內容,我開始認為它對我的軟件開發有很大的幫助。 在我的特定情況下,並發和內存管理更是如此,因為我們在這方面遇到了很多錯誤。
我需要進行哪些關鍵語言功能才能有效地從使用提升和縮短學習曲線中獲益? 我已經看到函數對象是常用的,所以我可能需要對此進行改進。
另外,是否有任何教程和101資源我可以快速查看,以獲得使用boost的感覺和理解。
我意識到有很多提升優惠,我必須為正確的工作選擇合適的工具,但任何線索都會有所幫助。
Boost擁有難以想象的數量的庫。 容易上手的是
更高級的包括
習慣提升需要時間,但我向你保證它會讓你的生活更美好。 此外,查看增強庫的編碼方式將有助於您更好地進行c ++編碼,尤其是模板。
你提到在嘗試加強之前你應該怎么看。 我同意功能對象是一個很好的研究方法。 另外,請務必查看模板編程。 確保您知道的常見問題是何時對依賴類型使用typename
限定符。 然而,在大多數情況下,這些庫都有很好的文檔記錄,包括示例和參考資料。
我需要進行哪些關鍵語言功能才能有效地從使用提升和縮短學習曲線中獲益?
......等等。
是否有任何教程和101資源我可以快速查看,以獲得使用提升的感覺和理解。
Boost有很好的記錄。 從這里開始。
有太多的圖書館迷路了。 我會先說一些簡單的,可能是智能指針或Boost.Test(單元測試框架) - 這將很快幫助您入門。 另外,試着想一下你用STL無法輕易解決的問題。 然后查找Boost文檔或在此處發布。
如果您對函數式編程感到滿意,請查看MPL / Lambda庫。
第一個IMO是智能指針 。 集成到新代碼中很簡單,對於現有代碼來說通常不是問題。 它們使內存管理變得簡單,並且可以用於許多其他資源。
C ++為您提供了管理自己內存的能力,智能指針可以讓您(大多數時候)在您不需要的時候為它提供支持。
第二個是 - 如你所提到的 - 函數對象,它們在C ++中填補了傳統上通過繼承解決的大差距,這在很多情況下是強耦合的。
我對這兩個之外的提升只有很少的經驗,但其余大部分是相當“情境化的” - 你可能需要也可能不需要它。 獲取有關庫的概述 ,並了解您的需求。
boost::any
和boost::variant
是好的你需要一個變量數據類型,有兩種不同的方法。
boost::regex
如果你需要一些文本解析。
boost::thread
和boost::filesystem
幫助你編寫可移植的代碼。 如果您已經擁有良好的平台特定庫,則可能不需要它們 - 但它們在任何情況下都優於API或C ++級別。
試試BjörnKarlsson的書: 超越C ++標准庫:Boost簡介 。 它非常簡單易懂。 在我完成Scott Meyers的三本c ++書籍(有效系列)后,我讀到了這本書。
在閱讀了超越C ++標准庫:Boost簡介之后 ,我建議隨便瀏覽boost.org上的文檔,只是為了了解可用的內容。 當它看起來非常適合特定的應用程序時,您可以深入了解特定的boost庫。
我認為shared_ptr應該是最容易開始的地方。 開始在簡單指針或auto_ptr數據類型的位置使用它。
您還可以查看weak_ptr。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.