我在尝试将函数绑定到std :: function typedef时遇到问题,我希望有人可以帮我找到错误。代码非常简单。我有一个SerialConnection类,有一些事情正在进行,但这里有重要的东西:
class SerialConnection : public ConnectionBase
{
public:
typedef std::function<std::shared_ptr<Session>(const Session:SerialSocket&) SerialFactory;
Result Initialize(const SerialConfiguration& config, const SerialFactory session_factory);
}
然后我有另一个具有以下函数定义的类:
class MyPlugin : public PluginBase
{
public:
std::shared_ptr<Connections::Session> SessionFactory(const Connections::Session::SerialSocket &socket);
}
然后我尝试将此函数绑定到类型定义的SerialFactory,如下所示:
_serialConnection->Initialize(_serialConfig, std::bind(&MyPlugin::SessionFactory, std::placeholders::_1));
这导致我出现以下错误:
Connections :: Result Connections :: SerialConnection :: Initialize(const Connections :: SerialConfiguration&amp;,const Connections :: SerialConnection :: SerialFactory)':无法从'std :: _ Binder(__ cdecl MyPlugin :: *)转换参数2 (const Connections :: Session :: SerialSocket&amp;),const std :: _ Ph&lt; 1&gt; &安培;&GT;”到'const Connections :: SerialConnection :: SerialFactory'
我在许多地方对类型定义的std :: function使用std :: bind,但这是唯一一个给我带来麻烦的东西。有谁看到问题可能是什么?
提前致谢。