C++单例

 1 template<class T>
 2 class Singleton
 3 {
 4 public:
 5     using object_type = T;
 6     struct object_creator
 7     {
 8         object_creator()
 9         {
10             Singleton<T>::instance();
11         }
12     };
13  
14     static object_creator creator_object;
15 public:
16     static object_type* instance()
17     {
18         static object_type _instance;
19         return(&_instance);
20     }
21 };
22 template<typename T> typename Singleton<T>::object_creator Singleton<T>::creator_object;