Guy*_*Guy 2 c++ events boost signals
我正在尝试执行以下操作,以便从增强信号接收字符串并将其发布到显示器.以下语法不正确.
signal<void (const char*)> UserMessageEvent;
// connect anonymous boost function to display message box on user message event
UserMessageEvent.connect(boost::bind(AfxMessageBox, _1));
Run Code Online (Sandbox Code Playgroud)
如果这是C#,我会做以下操作,让我相信我想使用lambda函数在信号的调用类型和AfxMessageBox参数的类型之间进行转换.但是我不清楚如何做到这一点.
UserMessageEvent += (c) => MessageBox.Show((some const char to LPCSTR conversion)c);
Run Code Online (Sandbox Code Playgroud)
有什么建议?
编辑:msvc10给出的错误是错误C2914:'boost :: bind':不能推断模板参数,因为函数参数是模糊的
我不知道boost :: bind在默认参数方面的表现如何.
无论如何,这是lambda的语法:
UserMessageEvent.connect( [](const char* message)
{
// maybe need here a conversion to LPCWSTR ?
AfxMessageBox(message);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2991 次 |
最近记录: |