1、简介:
Boost是一个同行评审、提供源代码、可移植的C++库。它可以与C++标准库完美地共同工作,并为其提供扩展功能。目前,有一部分Boost库已经被包含在C++标准委员会的程序库技术报告TR1中,并在即将到来的C++标准修订版本中加入。
2、下载、安装:
从http://www.boost.org/users/download/下载合适版本的压缩包(如boost_1_57_0.tar.gz) -> 解压为/usr/local/boost_1_57_0,并加一个软链boost指向它。
大部分Boost库的使用只需包含相应头文件即可,少数(如coroutine、python、regex和thread)需要链接相应的二进制库(library binary)。这些库需要自己编译和安装:
cd /usr/local/boost
# 参考./bootstrap.sh --help
# --show-libraries显示那些需要编译(build)和安装步骤的库的集合 # --with-libraries=list:list或取值"all",或指定要编译的库的集合,用逗号分割 ./bootstrap.sh --show-libraries --with-libraries=regex
# 把头文件和已编译的库文件安装到指定路径(/usr/local/include/boost/和/usr/local/lib/等) ./b2 install
3、示例:
// example.cpp
#include <boost/regex.hpp> // ... int main() { std::string line; boost::regex pat("^Subject: (Re: |Aw: )*(.*)"); while (std::cin) { std::getline(std::cin, line); boost::smatch matches; if (boost::regex_match(line, matches, pat)) { // matches[2]对应pat第2个括号内正则表达式匹配到的字符串,依此类推 std::cout << matches[2] << std::endl; } } }
编译:g++ example.cpp -I /usr/local/boost /usr/local/lib/libboost_regex.a。运行:
$ ./a.out Subject: Re: Re: Re: How To Build Boost? How To Build Boost?
参考资料:
http://www.boost.org/
不断学习中。。。