【问题标题】:How to declare a pointer to member template function?如何声明指向成员模板函数的指针?
【发布时间】:2020-05-11 06:58:09
【问题描述】:
struct S
{
    template <auto> void F(){};
};

S s;
void (S::* pmf)()=s.F<true>;

编译错误,如何解决? 感谢您的帮助。

【问题讨论】:

  • 您能否添加您得到的错误。你用的是哪个编译器?

标签: c++ function templates member declare


【解决方案1】:

你应该使用类名来限定成员函数,并且没有从成员函数到成员函数指针的隐式转换,所以显式使用operator&amp;。例如

void (S::* pmf)() = &S::F<true>;

LIVE

【讨论】:

  • 嗨,我修改了问题,将其扩展到指向成员内容的指针的成员。你知道如何解决嵌套指针本身的 m_pmd/m_pmf 问题吗?
  • @Larry 好像是个新问题;我建议发布一个新的而不是修改这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-20
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 2012-07-05
相关资源
最近更新 更多