欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > boost之signal2

boost之signal2

2025/5/19 10:04:00 来源:https://blog.csdn.net/wuli2496/article/details/148047001  浏览:    关键词: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>,其结构为
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词