繁体   English   中英

c ++模板函数指针

[英]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()不是AAAstatic成员函数,因此需要AAA实例才能在以下位置调用myFunc

AAA a;
(a.*myFunc)(3);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM