【发布时间】:2018-12-04 13:33:33
【问题描述】:
我正在尝试为 myClass 中的函数 (myFunction) 创建类型别名。
template<typename T>
using calc_t = matrix<T> (MyClass<T>::*myFunction)(const matrix<T> &X);
我会得到一个通用语法错误,missing ')' before MyClass<T>::*myFunction。
然后就这样使用它
calc_t<double> fptr = &MyClass<double>::myFunction;
我不确定在这种特定情况下使用 using 类型别名而不是非模板类型定义时使用的语法。
我查看了以下似乎未涵盖此特定用法的其他 SO 问题:
我尝试了其他一些变体,但没有成功。
【问题讨论】:
-
您是否收到错误消息?错误是什么?带有类定义的minimal reproducible example 会很有用。
-
我真的不建议使用指向成员函数的指针(或指向 any 函数的指针)。相反,我建议使用更通用的
std::function。 -
@clcto 我已经添加了在这种情况下遇到的错误类型。你说的对。一旦我对此有所了解,我可能会将其移植到 std::function 上。
标签: c++ templates typedef member-function-pointers