当前位置: 首页 > 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>,其结构为
在这里插入图片描述

http://www.dtcms.com/a/198821.html

相关文章:

  • 代码上传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++核心对象与属性对比
  • BiRefNet V3版 - 一个高精度的高分辨率图像抠图模型,AI“抠图之王” 支持50系显卡 本地一键整合包下载
  • 【第三十六周】LoRA 微调方法
  • AM32电调学习解读七:其他代码文件介绍
  • 001 嵌入式软件开发工程师实习篇面试——首战总结
  • ‘https://start.aliyun.com/‘ 的初始化失败 请检查 URL、网络和代理设置。
  • NHANES指标推荐:UHR
  • Vue.js教学第五章:计算属性与侦听器详解
  • Google Gen AI Python SDK 开发教程
  • 代码案例分析
  • 内容中台智能推荐系统构建与演进