最近因为项目开发的原因,常使用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提供了大多多文件系统操作的所需功能。一看接口就能写代码。