繁体   English   中英

C ++升压信号和带有不同参数的插槽?

[英]C++ boost signals and slots with different parameters?

可以将C ++信号链接到具有不同参数列表的插槽吗?

也就是说,一个插槽需要1个参数,另一个插槽需要2个,依此类推...

然后使用1或2个参数调用该信号,然后调用相应的插槽?

不, signal实例的类型由其类型定义。 如果您检查boost::signals2模板类的定义(或不​​建议使用的boost::signals ):

template<typename Signature, 
         typename Combiner = boost::signals2::optional_last_value<R>, 
         typename Group = int, typename GroupCompare = std::less<Group>, 
         typename SlotFunction = boost::function<Signature>, 
         typename ExtendedSlotFunction = boost::function<R (const connection &, T1, T2, ..., TN)>, 
         typename Mutex = boost::signals2::mutex> 
class signal : public boost::signals2::signal_base {

信号的呼叫签名及其时隙固定在模板参数中。

一种解决方法是定义一个Event参数类型,它可以包含多种数据,例如,由子类定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM