天天看点

boost中实用的一些小组件

最近因为项目开发的原因,常使用boost。仅凭借记忆,写一些实用的小组件。

1、位于<boost/utility.hpp>中的noncopyable:将一个类限制为“不可复制”。

#include <boost/utility.hpp>

class MyClass : public boost::noncopyable

{

}; 

2、BOOST_FOREACH,非常好用的foreach实现,不过要注意,不能在foreach内部修改迭代器。BOOST_FOREACH对C++程序员而言,可以算是“改变了人生的一个组件”了:)

#include <list>

#include <boost/foreach.hpp>

list<ClassEntry> lc;

BOOST_FOREACH(const ClassEntry& ce, lc){

ce.function(xx);

3、boost::thread中对数据加锁非常方便。利用构造函数和析构函数,分别执行加锁和解锁。

4、boost::lambda和boost::bind似乎有冲突,仅包含相关头文件,就会导致gcc编译出错。

5、boost::program_options解析命令行参数,基本算是最自然的解决方案了。

6、boost::serialization用于将数据存以xml等格式。而且可以以非侵入式形式出现。

7、boost::filesystem提供了大多多文件系统操作的所需功能。一看接口就能写代码。