Boost库中的线程安全模板单例的实现

template <typename T>
struct Singleton
{
		struct object_creator
     	{
        	object_creator()
			{
				 Singleton<T>::instance();
			}
         	inline void do_nothing()const {}
     	};
 
   		static object_creator create_object;
 
public:

     	typedef T object_type;
    	static object_type& instance()
    	{
        	static object_type obj;
         	create_object.do_nothing(); 
	        return obj;
    	}
    
 };
template <typename T>
typename Singleton<T>::object_creator Singleton<T>::create_object;
posted @ 2022-09-29 19:41  J1nu  阅读(21)  评论(0)    收藏  举报