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"

#pragma once
#include <boost/serialization/singleton.hpp>
#define m_signal CSigObj::get_mutable_instance()
class CSigObj :public boost::serialization::singleton<CSigObj> //继承模式
{
public:
    CSigObj();
    ~CSigObj();
};
boost::serialization::singleton单例的使用方式
#define m_signal        CSigObj::get_mutable_instance()    // 非const
#define m_signal_const  CSigObj::get_const_instance()      // const实例 
class CSigObj :public boost::noncopyable
{
 CSigObj();
 ~CSigObj();
};

typedef boost::serialization::singleton<CSigObj> singleton_ctest; // 使用模板的方式只允许单个实例 
 singleton_ctest::get_mutable_instance().show();
posted @ 2018-06-20 21:57  osbreak  阅读(1504)  评论(0)    收藏  举报