48 TIMEMORY_DEFAULT_OBJECT(
store)
50 template <
typename... Args>
51 TIMEMORY_HOT
explicit store(
type& obj, Args&&... args)
53 sfinae(obj, 0, 0, std::forward<Args>(args)...);
56 template <
typename... Args>
59 return sfinae(obj, 0, 0, std::forward<Args>(args)...);
66 template <
typename Up,
typename... Args>
67 TIMEMORY_HOT
auto sfinae(Up& obj,
int,
int, Args&&... args)
68 ->
decltype(obj.store(std::forward<Args>(args)...))
70 return obj.store(std::forward<Args>(args)...);
75 template <
typename Up,
typename... Args>
76 TIMEMORY_HOT
auto sfinae(Up& obj,
int,
long, Args&&...) ->
decltype(obj.store())
83 template <
typename Up,
typename... Args>
84 TIMEMORY_INLINE
void sfinae(Up&,
long,
long, Args&&...)
The declaration for the types for operations without definitions.
Include the macros for operations.
Declare the operations types.
auto operator()(type &obj, Args &&... args)
store(type &obj, Args &&... args)