typedef的模板,它接受指向const和非const函数的指针

时间:2017-10-19 08:23:07

标签: c++ c++14 member-function-pointers

这是指向接受两个int并返回int:

的类方法的指针
0

我只能传递非const方法。 如何更改此模板以使其接受const和非const方法?

1 个答案:

答案 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