[英]c++ template function pointer
我遇到一个c ++模板函数的问题,请帮忙。 非常感谢。
class AAA {
public:
template<typename K>
void dooo(K str) {
std::cout << str << std::endl;
}
};
template<typename Class, typename ret, typename K>
using Func = ret (Class::*) (K);
int main() {
Func<AAA, void, int> myFunc = &AAA::dooo;
myFunc(3);
return 0;
}
符合:clang ++ -std = c ++ 11 -oc c.cc
错误:
error: called object type 'Func<AAA, void, int>' (aka 'void (AAA::*)(int)') is not a function or function pointer
myFunc(3);
~~~~~~^
1 error generated.
由于dooo()
不是AAA
的static
成员函数,因此需要AAA
实例才能在以下位置调用myFunc
:
AAA a;
(a.*myFunc)(3);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.