C++ 检查2个函数签名是否相同
template<typename F>
struct FuncSignature {};
template<typename R, typename...Args>
struct FuncSignature<R(Args...)>
{
using type = std::tuple<Args...>;
};
#define CHECK_SIGNATURE(FUNC1, FUNC2) \
static_assert(\
std::is_same_v< \
typename FuncSignature<decltype(FUNC1)>::type, \
typename FuncSignature<decltype(FUNC2)>::type \
>, \
#FUNC1 "和" #FUNC2 "形参列表不匹配"\
)

浙公网安备 33010602011771号