acl  3.5.3.0
acl::singleton2< T > 模板结构体 参考

#include <singleton.hpp>

+ acl::singleton2< T > 的协作图:

Public 类型

typedef T object_type
 

静态 Public 成员函数

static object_typeget_instance ()
 

详细描述

template<typename T>
struct acl::singleton2< T >

上面的实现在 VC2003 的 release 编译时如果打开了优化开关,则不能保证单例 的构造函数先于 main 执行,如果是在 VC2003 下编译单例程序且在多个线程下 都用单例对象时,建议使用如下的单例模板类,示例如下: class singleton_test { public: singleton_test() {} ~singleton_test() {} singleton_test& init() { return *this; } };

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

在文件 singleton.hpp181 行定义.

成员类型定义说明

◆ object_type

template<typename T >
typedef T acl::singleton2< T >::object_type

在文件 singleton.hpp192 行定义.

成员函数说明

◆ get_instance()

template<typename T >
static object_type& acl::singleton2< T >::get_instance ( )
inlinestatic

在文件 singleton.hpp193 行定义.

194  {
195  static object_type obj;
196  create_object.do_nothing();
197  return obj;
198  }

该结构体的文档由以下文件生成: