CLion之C++框架篇-優化框架,引入boost(三)

 
背景
 
  結合上一篇 CLion之C++框架篇-優化框架,單元測試(二),繼續進行框架優化!這一版優化引入一個咱們平常常常使用的操做庫Boost,估算使用頻率在70%以上!
 
  Boost的優點在哪裏?
  一、Boost是一個功能強大、構造精巧、跨平臺、開源而且徹底免費的C++程序庫,有着「C++‘準’標準庫」的美譽。
  二、它由C++標準委員會部分紅員所設立的Boost社區開發並維護;
  三、使用了許多現代C++編程技術,內容涵蓋字符串處理、正則表達式、容器與數據結構、併發編程、函數式編程、泛型編程、設計模式實現等許多領域,極大地豐富了C++的功能和表現力,可以使C++軟件開發更加簡潔、優雅、靈活和高效。 
   四、代碼開源,你能夠直接看到底層代碼實現,爲咱們學習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下的代碼裏引用執行:html

 
 

 
case——時間與日期
 
背景:C++一直以來缺乏對時間和日期的處理能力,而時間與日期又是現實生活中常常遇到的,C++程序員不得不求助於C,使用笨拙的結構和函數(struct tm,time())。Boost使用timer和date_time庫完美地解決了這個問題。
 
timer庫:是一個很小的庫,提供簡易的度量時間和進度顯示功能,用於性能測試等須要計時的任務。主要包括三個組建:計時器類timer、progress_time和進度指示類progress_display。
 
數據進度
 
 

 

 獲取今天、昨天、明天python

 

 

 

 

更多樣例:http://boost.ez2learn.com/doc/html/date_time/examples.html ios

 

## 錯誤boost::gregorian::greg_month::get_month_map_ptr()"c++

解決方式:在CMakeLists.txt裏添加 set(CMAKE_CXX_FLAGS   "-lboost_date_time-mt-d");
 
git版本管理項目
 
 
平常操做中,隱藏掉那些不須要的目錄及文件,方便進行git的文件管理
 

 

 

 

 
推薦
相關文章
相關標籤/搜索