类型定义模板,接受指向常量和非常量函数的指针



下面是指向接受两个整数并返回一个 int 的类方法的指针:

template <typename T>
using TFunction = int (T::*)(int, int);

我只能在这里传递非常量方法。如何更改此模板以使其同时接受常量和非常量方法?

这种情况对于条件来说非常简单:

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

相关内容

  • 没有找到相关文章

最新更新