vla*_*don 3 c++ member-function-pointers c++14
这是指向接受两个int并返回int的类方法的指针:
template <typename T>
using TFunction = int (T::*)(int, int);
Run Code Online (Sandbox Code Playgroud)
我只能传递非const方法.如何更改此模板以便它接受const和非const方法?
这种情况对于条件来说很简单:
template <typename T>
using TFunction = std::conditional_t<
std::is_const_v<T>,
int (T::*)(int, int) const,
int (T::*)(int, int)
>;
Run Code Online (Sandbox Code Playgroud)
现在TFunction<Foo>是int (Foo::*)(int, int),而且TFunction<Foo const>是int (Foo::*)(int, int) const.