这是指向接受两个int并返回int:
的类方法的指针0
我只能传递非const方法。 如何更改此模板以使其接受const和非const方法?
答案 0 :(得分:6)
这种情况对于条件非常简单:
template <typename T>
using TFunction = std::conditional_t<
std::is_const_v<T>,
int (T::*)(int, int) const,
int (T::*)(int, int)
>;
现在TFunction<Foo>
为int (Foo::*)(int, int)
,TFunction<Foo const>
为int (Foo::*)(int, int) const
。