60 enable_if_t<trait::is_available<Up>::value,
char> = 0>
65 sfinae<type, StateT>(_storage, 0, 0);
72 sfinae<type, StateT>(_storage, 0, 0);
80 template <
typename Up = Tp,
int StateT,
86 return sfinae<type, StateT>(_storage, 0, 0);
90 template <
typename Up = Tp,
int StateT,
100 template <
int StateT>
101 static bool get_executed()
103 return was_executed<StateT>();
110 ->
decltype(std::declval<Up>().global_init(_storage), bool())
112 if(was_executed<StateT>())
115 demangle<Tp>().c_str());
116 type::global_init(_storage);
117 was_executed<StateT>() =
true;
124 ->
decltype(std::declval<Up>().global_init(), bool())
126 if(was_executed<StateT>())
129 demangle<Tp>().c_str());
131 was_executed<StateT>() =
true;
138 ->
decltype(std::declval<Up>().thread_init(_storage), bool())
140 if(was_executed<StateT>())
143 demangle<Tp>().c_str());
144 type::thread_init(_storage);
145 was_executed<StateT>() =
true;
152 ->
decltype(std::declval<Up>().thread_init(), bool())
154 if(was_executed<StateT>())
157 demangle<Tp>().c_str());
159 was_executed<StateT>() =
true;
163 template <
typename Up,
int StateT,
typename StorageT>
170 template <
int StateT, enable_if_t<StateT == init_mode::global,
char> = 0>
171 static bool& was_executed()
173 static bool _instance =
false;
177 template <
int StateT, enable_if_t<StateT == init_mode::thread,
char> = 0>
178 static bool& was_executed()
180 static thread_local bool _instance =
false;
std::integral_constant< int, ModeV > mode_constant
typename std::enable_if< B, T >::type enable_if_t
Alias template for enable_if.
The declaration for the types for operations without definitions.
Include the macros for operations.
Declare the operations types.
This operation class is used for invoking the static initializer and thread-local initializer of a co...
int int int int int int StateT
int int int int int int int int int int StorageT bool sfinae(StorageT, long, long) const
int int int int int int int int StateT
int int int int int StateT
int int int int int int int StateT
int int int int int int int int int StateT
TIMEMORY_DELETE_COPY_MOVE_OBJECT(init) template< typename Up
#define CONDITIONAL_PRINT_HERE(CONDITION,...)
typename typename typename