如何使用“auto”来声明指向重载成员函数的指针?

如果我有一个重载的非静态成员函数,我如何auto为该函数的一个版本声明一个指针?

struct Foo{
   void bar(){}
   void bar(int){}
};

auto ptr = &Foo::bar; // error: unable to deduce 'auto' from '&Foo::bar'

回答

你没有。

好吧,您可以对正确的指针类型进行显式转换,但这与仅将正确的指针类型替换为 确实没有什么不同auto

using bar_ptr = void (Foo::*)();

bar_ptr ptr = &Foo::bar;

//or

auto ptr = (bar_ptr)&Foo::bar;


以上是如何使用“auto”来声明指向重载成员函数的指针?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>