关于Boost中的Signal

Zboy 2005-08-08 06:20:52
今天看了下boost 里面的 Signal,发现只能绑定native function和functor,
如何绑定一般的成员函数呢?

谢谢
...全文
350 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
baickl 2005-12-24
  • 打赏
  • 举报
回复
to wingfiring(别逗了)(非典型秃子) 那个_1是lambda库当中预定的,叫做占位符。
期望一个完美的delegate库。。。。。

其实boost中的Function就很不错了



roger_77 2005-09-19
  • 打赏
  • 举报
回复
正在学习使用boost的signals库

学习中……
wingfiring 2005-09-15
  • 打赏
  • 举报
回复
汗自己一个!
查了boost 1.33,bind的占位符现在是9个。
lambda的占位符现在是3个。
在不追求效率的时候,bind + function + signal应该够用了,帮定一般成员函数
duyanning(狗见愁)已经说啦。
wingfiring 2005-09-13
  • 打赏
  • 举报
回复
那个_1是lambda库当中预定的,叫做占位符。
占位符只有_1和_2。
也就是说,要帮定普通的成员函数,那么成员函数的参数个数不能超过2。
因此,可以参考fastdelegate,siglib++(名字记不清了)的实现。
我用过fastdelegate,基本上还不错,但是也有下列问题:
不支持智能指针,例如boost::shared_ptr.不支持functor,虽然可以变通
成普通成员函数来用,但是语意就不对了。
期望一个完美的delegate库。。。。。
电视人 2005-09-12
  • 打赏
  • 举报
回复
signal巨慢
单个的用function
duyanning 2005-08-27
  • 打赏
  • 举报
回复
class SomeClass {
public:
void soltFunc(int x);
void subscribe()
{
xxx.connect(boost::bind(soltFunc, this, _1));
}
};

EricZhuo 2005-08-10
  • 打赏
  • 举报
回复
用bind

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧