P🍣
Size: a a a
P🍣
C
d
C
d
U
U
d
C
U
U
U
d
d
template <typename C, typename F>
struct ceraseoperator_wrapper;
#define DECLARE_ceraseoperator_wrapper(cv) template <\
typename R, typename C, typename ... Args\
>\
struct ceraseoperator_wrapper<C, R(Args...) cv> {\
static R function(void* cls, Args ... args) {\
return (*static_cast<cv C*>(const_cast<cv void*>(cls)))(args...);\
}\
}
DECLARE_ceraseoperator_wrapper();
DECLARE_ceraseoperator_wrapper(const);
DECLARE_ceraseoperator_wrapper(volatile);
DECLARE_ceraseoperator_wrapper(const volatile);
#undef DECLARE_ceraseoperator_wrapper
S
template <typename C, typename F>
struct ceraseoperator_wrapper;
#define DECLARE_ceraseoperator_wrapper(cv) template <\
typename R, typename C, typename ... Args\
>\
struct ceraseoperator_wrapper<C, R(Args...) cv> {\
static R function(void* cls, Args ... args) {\
return (*static_cast<cv C*>(const_cast<cv void*>(cls)))(args...);\
}\
}
DECLARE_ceraseoperator_wrapper();
DECLARE_ceraseoperator_wrapper(const);
DECLARE_ceraseoperator_wrapper(volatile);
DECLARE_ceraseoperator_wrapper(const volatile);
#undef DECLARE_ceraseoperator_wrapper
U
TG
U
TG