当前位置: 首页 > news >正文

boost之signal2

简介

signal2实现了信号槽机制,即事件总线EventBus

signal

信号的模板为

template<
typename Signature, typename Combiner = optional_last_value<typename boost::function_traits<Signature>::result_type>, typename Group = int, typename GroupCompare = std::less<Group>, typename SlotFunction = boost::function<Signature>, typename ExtendedSlotFunction = typename detail::variadic_extended_signature<Signature>::function_type, typename Mutex = signals2::mutex> 
class signal

信号的特例化为

template<
typename Combiner, typename Group, typename GroupCompare, typename SlotFunction, typename ExtendedSlotFunction, typename Mutex, typename R, typename ... Args>
class signal<
R (Args...), Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>

在这里插入图片描述
Sinagure:定义函数返回值,参数类型,typename R, typename T1, typename T2, …, typename TN
Combiner:默认值为optional_last_value<函数签名的返回值>
Group:默认值为int
GroupCompare:默认值为less
SlotFunction:默认值为function
ExtenedSlotFunction:默认值为typename detail::extended_signature<function_traits::arity, Signature>::function_type
Mutex:默认值为mutex

signal_impl

在这里插入图片描述
connection_list_type:其类型为grouped_list<Group, GroupCompare, connection_body_type>,而connection_body_type类型为shared_ptr<connection_body<group_key_type, slot_type, Mutex>>
在这里插入图片描述
SlotType:为slot<R (Args…), SlotFunction>
group_key_type类型为

enum slot_meta_group {front_ungrouped_slots, grouped_slots, back_ungrouped_slots};
template<typename Group>
struct group_key
{typedef std::pair<enum slot_meta_group, boost::optional<Group>> type;
};

slot

在这里插入图片描述
slot对于普通函数的特例化为slot<R (Args…), SlotFunction>,其结构为
在这里插入图片描述

相关文章:

  • 代码上传gitte仓库
  • 本地无损放大软件-realesrgan-gui
  • 人工智能100问☞第26问:什么是贝叶斯网络?
  • Python 条件语句详解
  • Postgres mcp server
  • Text models —— BERT,RoBERTa, BERTweet,LLama
  • java中的Servlet1.x详解
  • Python训练第二十九天
  • DeepSeek系列核心技术与贡献总结
  • PointNet++:点云处理的升级版算法
  • 最长递增子序列
  • C2S-Scale方法解读
  • 信奥赛-刷题笔记-栈篇-T2-P3056括号调整问题0518
  • LeetCode算 法 实 战 - - - 双 指 针 与 移 除 元 素、快 慢 指 针 与 删 除 有 序 数 组 中 的 重 复 项
  • LeetCode 394. 字符串解码详解:Java栈实现与逐行解析
  • 【甲方安全建设】Python 项目静态扫描工具 Bandit 安装使用详细教程
  • 【QGIS二次开发】空间分析-10
  • 力扣1991:找到数组的中间位置(前缀和)
  • SOC-ESP32S3部分:快速烧录上手使用
  • OpenCL C C++核心对象与属性对比
  • 特朗普与普京通话前夕,英美法德意领导人通话讨论俄乌问题
  • 学生靠老干妈下饭、职工餐肉类又多又好?纪委出手整治
  • 梅花奖在上海|秦海璐:演了15年《四世同堂》,想演一辈子
  • 上海:到2027年,实现近海航线及重点海域5G网络高质量覆盖
  • 澳大利亚首例“漂绿”诉讼开庭:能源巨头因“碳中和”承诺遭起诉
  • 河南:响鼓重锤对违规吃喝问题露头就打、反复敲打、人人喊打