背景
結合上一篇
CLion之C++框架篇-優化框架,單元測試(二),繼續進行框架優化!這一版優化引入一個我們日常經常使用的操作庫Boost,估算使用頻率在70%以上!
Boost的優勢在哪里?
1、Boost是一個功能強大、構造精巧、跨平台、開源並且完全免費的C++程序庫,有着“C++‘准’標准庫”的美譽。
2、它由C++標准委員會部分成員所設立的Boost社區開發並維護;
3、使用了許多現代C++編程技術,內容涵蓋字符串處理、正則表達式、容器與數據結構、並發編程、函數式編程、泛型編程、設計模式實現等許多領域,極大地豐富了C++的功能和表現力,能夠使C++軟件開發更加簡潔、優雅、靈活和高效。
4、代碼開源,你可以直接看到底層代碼實現,為我們學習c++提供參考標准!
boost能做什么?
時間與日期
內存管理
字符串與文本處理
正確性與測試
容器與數據結構
算法
數學與數字
操作系統相關
函數與回調
並發編程
編程語言支持
下載安裝Boost庫
下載地址:https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz
cd boost_1_67_0 ./bootstrap.sh ./b2 install
我的機器安裝了10分鍾左右(時間有點長,耐心等待)
頭文件位於:/usr/local/include/boost
庫路徑位於:/usr/local/lib
看看都安裝了哪些庫
./bjam --show-libraries
The following libraries require building:
- atomic
- chrono
- container
- context
- contract
- coroutine
- date_time
- exception
- fiber
- filesystem
- graph
- graph_parallel
- iostreams
- locale
- log
- math
- mpi
- program_options
- python
- random
- regex
- serialization
- signals
- stacktrace
- system
- test
- thread
- timer
- type_erasure
- wave
在框架中使用boost
boost版本跟cmake版本是有直接關系的
編輯頂層的CMakeLists.txt,如圖:
直接在test下的代碼里引用執行:
case——時間與日期
背景:C++一直以來缺少對時間和日期的處理能力,而時間與日期又是現實生活中經常遇到的,C++程序員不得不求助於C,使用笨拙的結構和函數(struct tm,time())。Boost使用timer和date_time庫完美地解決了這個問題。
timer庫:是一個很小的庫,提供簡易的度量時間和進度顯示功能,用於性能測試等需要計時的任務。主要包括三個組建:計時器類timer、progress_time和進度指示類progress_display。
數據進度

獲取今天、昨天、明天

更多樣例:http://boost.ez2learn.com/doc/html/date_time/examples.html
## 錯誤boost::gregorian::greg_month::get_month_map_ptr()"
解決方式:在CMakeLists.txt里添加 set(CMAKE_CXX_FLAGS "-lboost_date_time-mt-d");
git版本管理項目
日常操作中,隱藏掉那些不需要的目錄及文件,方便進行git的文件管理
推薦
