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

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.xdnf.cn/news/7253.html

相关文章:

  • 【ROS2】虚拟机使用fishros脚本一键安装humble
  • 我的创作纪念日——512天
  • 学习笔记:hspice仿真Verilog-a
  • ReentrantLock、ReentrantReadWriteLock、StampedLock讲解
  • ET Attribute
  • 【Python 算法零基础 4.排序 ① 选择排序】
  • 深度剖析:YOLOv8融入UNetv2 SDI模块的性能提升之旅
  • 游戏服务器之聊天频道设计
  • 双紫擒龙紫紫红指标源码学习,2025升级版紫紫红指标公式-重点技术
  • transformer project tutorial
  • volatile
  • Python实例题:Flask开发轻博客
  • mybatis中的resultMap的association及collectio的使用
  • 【动态规划】状压dp
  • Mlp-Mixer-BiGRU故障诊断的python代码合集
  • LLMs:《POE报告:2025年春季人工智能模型使用趋势》解读
  • 实习记录小程序|基于SSM+Vue的实习记录小程序设计与实现(源码+数据库+文档)
  • 涉密载体管控系统|DW-S402系统组成
  • 【LLM MoE】论文分享No.11:DeepSeekMoE
  • 前缀和——中心数组下标
  • Leetcode 3552. Grid Teleportation Traversal
  • 【开源分享】健康饮食管理系统(双端+论文)
  • 2- PyTorch
  • 如何使用 Apple 提供的 benchmark 工具
  • 深入解析Spring Boot与Spring Cloud在微服务架构中的实践
  • 卷积神经网络进阶:转置卷积与棋盘效应详解
  • 常见的请求头(Request Header)参数
  • 学习黑客Active Directory 入门指南(四)
  • 代码随想录哈希表part02(二)
  • 学习黑客Active Directory 入门指南(一)