是否可以将成员超载存储在容器中

Is it possible to store in a container a member overload?

本文关键字:存储 超载 成员 是否      更新时间:2023-10-16

我的问题很简单,但是解决方案对我来说并不明显。

我想将过载集(如果需要的话,则允许宏)进入容器中。超载功能是成员函数。我想要这样的东西:

std::function<void (MyClass &, std::string const &)> myFuncs = 
{&MyClass::f1, &MyClass::f2};

我尝试了几件事,我现在不会发布代码,但是基本上,即使我需要过载以将过载设置设置为函数,我也希望它能起作用。我知道如何使用自由功能来做到这一点,但我没有为成员功能做到这一点。知道是否可以以通用方式?

这比起初想象的要容易:

我可以做以下操作:

//Choose overload
using MyFType = void (MyClass::*)(std::string const &);

static const MyFType funcs[] = {&MyClass::f1, &MyClass::f2};

将转换为定义左侧给出的正确的过载。