Boost Tips

Boost 的安装:
========================================

     首先从http://www.boost.org下载boost_1_40.7z,解压到 C:/boost_1_40_0,然后打开Visual Studio命令提示,用cd命令切换到 C:/boost_1_40_0目录,先执行bootstrap, 然后执行 bjam 就可以了. 第一条命令用于生成bjam.exe,执行完第一条命令后将会在C:/boost_1_40_0目录下多出一个bjam.exe文件;第二条命令就是编译boost库了默认中间文件在bin.v2目录下,编译完成后可以删掉此目录,而编译出来的lib文件默认在stage目录下。
     编译完成后将 C:/boost_1_40_0 添加到VC++的“包含文件”目录,将 C:/boost_1_40_0/stage/lib 添加到“库文件”目录就可以使用boost了.

 

Boost 库文件名解释
========================================

比如一个库文件libboost_date_time-vc80-mt-sgd-1_37.lib,其各个部分的含义是:
s:  代表static
gd:代表调试版
mt:代表多线程支持


Boost  Serialization 简单使用方法
========================================

 

#include <boost/archive/xml_oarchive.hpp>

#include <boost/serialization/nvp.hpp>

class foo
{
    friend class boost::serialization::access;
    int foo;

    template<class Archive>
    void serialize(Archive & ar, const unsigned int)
    { ar  & BOOST_SERIALIZATION_NVP(foo);}

};

    然后再你需要序列化的地方,创建一个流文件,并且与archive关联,然后就可以很简单的序列化了,如下:

std::ofstream ofs(filename);

boost::archive::xml_oarchive oa(ofs);

oa << BOOST_SERIALIZATION_NVP(t);

 

Boost  Serialization 不成功

========================================

    上面的例子中间,当执行完oa << BOOST_SERIALIZATION_NVP(t)的时候,总看不到xml文件输出,而尝试使用ofstream的close和flush也无济于事, 根据官方的说法,实际的刷新工作是在析构函数里面完成的,所以解决这个问题的最简单办法就是将ofstream变量申请在栈空间,让它尽早的释放掉,完成文件的更新.

 

BOOST目录描述
========================================

Boost库的头文件一般按下列规则存放:

  • boost/ 目录下存放旧库以及小库。.

  • boost/的各个子目录存放大多数库的公共头文件, 比如, 你可以这样找到Python库的def.hpp 头文件:

    boost/python/def.hpp.
  • 一些库会在boost/目录下存放一个“聚合头文件”,包含该库所有的头文件。如, Boost.Python'的聚合头文件:

    boost/python.hpp.
  • 大多数库拥有私有的目录detail/, 或者 aux_/. 这些目录下的头文件不能被用户调用。

所以在使用Boost的头文件的时候,程序看上去会是这个样子:
#include <boost/***.hpp>
或者
#include "boost/***.hpp"

哪种格式取决于你如何引用了。

 

你可能感兴趣的:(Boost Tips)