acl  3.5.3.0
acl::singleton< T > 模板类 参考

#include <singleton.hpp>

+ 类 acl::singleton< T > 继承关系图:
+ acl::singleton< T > 的协作图:

静态 Public 成员函数

static T & get_instance ()
 
static bool is_destroyed ()
 
- 静态 Public 成员函数 继承自 acl::singleton_module
static void lock ()
 
static void unlock ()
 
static bool is_locked ()
 

额外继承的成员函数

- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

详细描述

template<class T>
class acl::singleton< T >

单例模板类,用VC2010或GCC编译时,单例对象在 main 函数之前被执行, 所以它是线程安全的;但在 VC2003 编译成 release 版本时且打开了优化 开关,则有可能是线程不安全的,此时不能保证单例对象的构造函数在 main 之前执行. 使用举例如下: class singleton_test : public acl::singleton<singlegon_test> { public: singleton_test() {} ~singleton_test() {} singleton_test& init() { return *this; } };

int main() { singleton_test& test = singleton_test::get_instance(); test.init(); ... return 0; }

在文件 singleton.hpp130 行定义.

成员函数说明

◆ get_instance()

template<class T >
static T& acl::singleton< T >::get_instance ( )
inlinestatic

在文件 singleton.hpp133 行定义.

134  {
135  static singleton_wrapper< T > t;
136  // refer to instance, causing it to be instantiated (and
137  // initialized at startup on working compilers)
139  use(instance_);
140  return static_cast<T &>(t);
141  }
static bool destroyed_
Definition: singleton.hpp:97

◆ is_destroyed()

template<class T >
static bool acl::singleton< T >::is_destroyed ( )
inlinestatic

在文件 singleton.hpp143 行定义.

144  {
146  }
static bool destroyed_
Definition: singleton.hpp:97

该类的文档由以下文件生成: