【发布时间】:2017-10-19 08:23:07
【问题描述】:
这是一个类方法的指针,它接受两个整数并返回一个整数:
template <typename T>
using TFunction = int (T::*)(int, int);
我只能在这里传递非常量方法。 如何更改此模板以使其同时接受 const 和非 const 方法?
【问题讨论】:
-
你的意思是 either
const和非const函数,对吧?没有单一的指针类型可以同时做到这两点。 -
我不接受任何会员。它接受
T。你的minimal reproducible example 太少了。这是一个 XY 问题。 -
您不能有一个同时引用两种类型的名称。您可以使用
template <typename T> using TCFunction = int (T::*const)(int, int);为const函数命名,或者使用std::function或您自己的版本键入擦除函数指针。
标签: c++ c++14 member-function-pointers