boost::单例
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();