【发布时间】:2010-09-21 22:17:30
【问题描述】:
我正在尝试将 boost::signal 的触发封装到 boost::bind 对象中。所以我想要的是在调用 boost::function 时使用一些预先打包的参数调用信号。
我拥有的是这样的:
boost::signals2::signal<void(int)> sig;
boost::function<void()> f = boost::bind(
&(sig.operator()), &sig, 10);
但这不起作用。我收到以下错误: 错误:没有匹配的函数调用 bind(, ...
我也试过这个:
boost::function<void()> f = boost::bind(
(void(boost::signals2::signal<void(int)>::*)(int))
&(sig.operator()), &sig, 10);
然后我得到“没有上下文类型信息的重载函数的地址。”
那么正确的语法是什么?
【问题讨论】:
标签: c++ boost boost-bind boost-signals