62 enable_if_t<trait::is_available<Up>::value,
char> = 0>
67 sfinae<type, StateT>(_storage, 0, 0);
74 sfinae<type, StateT>(_storage, 0, 0);
82 template <
typename Up = Tp,
int StateT,
88 return sfinae<type, StateT>(_storage, 0, 0);
92 template <
typename Up = Tp,
int StateT,
102 template <
int StateT>
103 static bool get_executed()
105 return was_executed<StateT>();
112 ->
decltype(std::declval<Up>().global_finalize(_storage), bool())
114 if(was_executed<StateT>())
116 type::global_finalize(_storage);
117 was_executed<StateT>() =
true;
124 ->
decltype(std::declval<Up>().global_finalize(), bool())
126 if(was_executed<StateT>())
128 type::global_finalize();
129 was_executed<StateT>() =
true;
136 ->
decltype(std::declval<Up>().thread_finalize(_storage), bool())
138 if(was_executed<StateT>())
140 type::thread_finalize(_storage);
141 was_executed<StateT>() =
true;
148 ->
decltype(std::declval<Up>().thread_finalize(), bool())
150 if(was_executed<StateT>())
152 type::thread_finalize();
153 was_executed<StateT>() =
true;
157 template <
typename Up,
int StateT,
typename StorageT>
164 template <
int StateT, enable_if_t<StateT == fini_mode::global,
char> = 0>
165 static bool& was_executed()
167 static bool _instance =
false;
171 template <
int StateT, enable_if_t<StateT == fini_mode::thread,
char> = 0>
172 static bool& was_executed()
174 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 StateT
int int int int int int int int int StateT
int int int int int int int int StateT
TIMEMORY_DELETE_COPY_MOVE_OBJECT(fini) template< typename Up
int int int int int int int int int int StorageT bool sfinae(StorageT, long, long)
int int int int int int StateT
int int int int int int int StateT
typename typename typename