可能重复:
Is it possible to write c++ template/macros to check whether two functions have the same signatures
是否可以编写c ++模板/宏来检查两个成员函数在编译时是否具有相同的签名(返回类型和参数列表)?
我想要这样的事情:
CHECK_SIGNATURES(Foo, foo, Bar, bar);
如果Foo :: foo和Bar :: bar函数具有不同的返回类型或参数列表,则编译失败。
答案 0 :(得分:0)
尝试以下方法:
template <class T>
bool same(T, T) { return true; }
template <class T, class U>
bool same(T, U) { return false; }
或许您可以在duplicate question的答案中使用std::is_same
。