YSTest
PreAlpha_b500_20140530
The YSLib Test Project
|
使用 call_once 的静态初始化管理器。 更多...
#include <utility.hpp>
Public 类型 | |
using | object_type = _type |
using | flag_type = _tOnceFlag |
Public 成员函数 | |
template<typename... _tParams> | |
call_once_init (_tParams &&...args) | |
~call_once_init () | |
静态 Public 成员函数 | |
static object_type & | get () |
静态 Private 成员函数 | |
static flag_type & | get_init_flag () |
static object_type *& | get_object_ptr () |
static flag_type & | get_uninit_flag () |
template<typename... _tParams> | |
static void | init (_tParams &&...args) |
static void | uninit () |
使用 call_once 的静态初始化管理器。
_tOnceFlag | 初始化调用标识。 |
<mutex>
的实现,使用 std::once_flag , 对应 std::call_once ,则是线程安全的; 若使用 bool ,对应 ystdex::call_once ,不保证线程安全。 其它类型可使用用户自行定义 call_once 。 使用支持 lambda pack 展开的实现构造模板。
支持分配器。
静态初始化,使用 _tOnceFlag 类型的静态对象表示初始化和反初始化状态, 保证所有在定义本类型的对象后已有静态对象被初始化。 在所有翻译单元的本类型对象析构后自动反初始化。 初始化和反初始化调用没有限定符修饰的 call_once 初始化和反初始化。 用户可以自定义 _tOnceFlag 实际参数对应的 call_once ,但声明 应与 std::call_once 和 ystdex::call_once 形式一致。
在文件 utility.hpp 第 438 行定义.
using ystdex::call_once_init< _type, _tOnceFlag >::flag_type = _tOnceFlag |
在文件 utility.hpp 第 442 行定义.
using ystdex::call_once_init< _type, _tOnceFlag >::object_type = _type |
在文件 utility.hpp 第 441 行定义.
|
inline |
在文件 utility.hpp 第 445 行定义.
参考 YSLib::UI::args, ystdex::call_once(), ystdex::call_once_init< _type, _tOnceFlag >::get_init_flag() , 以及 yforward.
|
inline |
|
inlinestatic |
在文件 utility.hpp 第 455 行定义.
参考 ystdex::call_once_init< _type, _tOnceFlag >::get_object_ptr() , 以及 yassume.
|
inlinestaticprivate |
在文件 utility.hpp 第 463 行定义.
参考自 ystdex::call_once_init< _type, _tOnceFlag >::call_once_init().
|
inlinestaticprivate |
|
inlinestaticprivate |
在文件 utility.hpp 第 479 行定义.
参考自 ystdex::call_once_init< _type, _tOnceFlag >::~call_once_init().
|
inlinestaticprivate |
在文件 utility.hpp 第 488 行定义.
参考 YSLib::UI::args, ystdex::call_once_init< _type, _tOnceFlag >::get_object_ptr() , 以及 yforward.
|
inlinestaticprivate |
在文件 utility.hpp 第 494 行定义.
参考 ystdex::call_once_init< _type, _tOnceFlag >::get_object_ptr().
参考自 ystdex::call_once_init< _type, _tOnceFlag >::~call_once_init().