背景
结合上一篇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的文件管理
推荐