回调列表是个很常见的东东,经常被用在 Observer 这样的订阅/发布模式里。当系统触发一个事件时,会遍历所有已经注册的回调列表,挨个调用,通知到相关的对象。

那么这里介绍的所谓通用回调列表有何好处呢?

  1. (以所谓“完美转发”的形式)支持任意个数和类型的参数调用
  2. 在上面第三点 std::function 的基础上,可以使用 std::string 作为 tag, 标记那些后面需要被注销的函数,也同时支持不打 tag 的函数
  3. 在需要时,支持批量地收集这些回调函数的返回值

阅读原文 »

3 收藏


直接登录

推荐关注