boost中有一些分散的單例實現,能夠獨立摘出來用的主要有以下四個:尤其以前兩個為主。
boost/container/detail/singleton.hpp
boost/serialization/singleton.hpp
boost/thread/detail/singleton.hpp
boost/pool/singleton_pool.hpp
"C\C++" 常規 > 附加包含目錄,增加"E:\boost_1_63_0\boost_1_63_0"
"鏈接器" 常規 > 附加庫目錄,增加"E:\boost_1_63_0\boost_1_63_0\stage\lib"
boost::serialization::singleton單例的使用方式
#define m_signal CSigObj::get_mutable_instance() // 非const實例
#define m_signal_const CSigObj::get_const_instance() // const實例
例1
#pragma once
#include <boost/serialization/singleton.hpp>
#define m_signal CSigObj::get_mutable_instance()
class CSigObj :public boost::serialization::singleton<CSigObj> //繼承模式
{
public:
CSigObj();
~CSigObj();
};
例2
class CSigObj :public boost::noncopyable
{
CSigObj();
~CSigObj();
};
typedef boost::serialization::singleton<CSigObj> singleton_ctest; // 使用模板的方式只允許單個實例
singleton_ctest::get_mutable_instance().show();