背景
結(jié)合上一篇CLion之C++框架篇-優(yōu)化框架,單元測(cè)試(二),繼續(xù)進(jìn)行框架優(yōu)化!這一版優(yōu)化引入一個(gè)我們?nèi)粘=?jīng)常使用的操作庫(kù)Boost,估算使用頻率在70%以上!
Boost的優(yōu)勢(shì)在哪里?
1、Boost是一個(gè)功能強(qiáng)大、構(gòu)造精巧、跨平臺(tái)、開(kāi)源并且完全免費(fèi)的C++程序庫(kù),有著“C++‘準(zhǔn)’標(biāo)準(zhǔn)庫(kù)”的美譽(yù)。
2、它由C++標(biāo)準(zhǔn)委員會(huì)部分成員所設(shè)立的Boost社區(qū)開(kāi)發(fā)并維護(hù);
3、使用了許多現(xiàn)代C++編程技術(shù),內(nèi)容涵蓋字符串處理、正則表達(dá)式、容器與數(shù)據(jù)結(jié)構(gòu)、并發(fā)編程、函數(shù)式編程、泛型編程、設(shè)計(jì)模式實(shí)現(xiàn)等許多領(lǐng)域,極大地豐富了C++的功能和表現(xiàn)力,能夠使C++軟件開(kāi)發(fā)更加簡(jiǎn)潔、優(yōu)雅、靈活和高效。
4、代碼開(kāi)源,你可以直接看到底層代碼實(shí)現(xiàn),為我們學(xué)習(xí)c++提供參考標(biāo)準(zhǔn)!
boost能做什么?
時(shí)間與日期
內(nèi)存管理
字符串與文本處理
正確性與測(cè)試
容器與數(shù)據(jù)結(jié)構(gòu)
算法
數(shù)學(xué)與數(shù)字
操作系統(tǒng)相關(guān)
函數(shù)與回調(diào)
并發(fā)編程
編程語(yǔ)言支持
下載安裝Boost庫(kù)
下載地址: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
我的機(jī)器安裝了10分鐘左右(時(shí)間有點(diǎn)長(zhǎng),耐心等待)
頭文件位于:/usr/local/include/boost
庫(kù)路徑位于:/usr/local/lib
看看都安裝了哪些庫(kù)
./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版本是有直接關(guān)系的
編輯頂層的CMakeLists.txt,如圖:
直接在test下的代碼里引用執(zhí)行:
case——時(shí)間與日期
背景:C++一直以來(lái)缺少對(duì)時(shí)間和日期的處理能力,而時(shí)間與日期又是現(xiàn)實(shí)生活中經(jīng)常遇到的,C++程序員不得不求助于C,使用笨拙的結(jié)構(gòu)和函數(shù)(struct tm,time())。Boost使用timer和date_time庫(kù)完美地解決了這個(gè)問(wèn)題。
timer庫(kù):是一個(gè)很小的庫(kù),提供簡(jiǎn)易的度量時(shí)間和進(jìn)度顯示功能,用于性能測(cè)試等需要計(jì)時(shí)的任務(wù)。主要包括三個(gè)組建:計(jì)時(shí)器類(lèi)timer、progress_time和進(jìn)度指示類(lèi)progress_display。
數(shù)據(jù)進(jìn)度

獲取今天、昨天、明天

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

喜歡編程
浙公網(wǎng)安備 33010602011771號(hào)