Boost::signals2::signal::connect 的原型是什么
我想封装一个 signal2::signal 对象并公开 connect 和 operator() 函数,但是它们的原型是什么样的?
示例:
#include <boost/signals2/signal.hpp>
template<typename T> class A {
public:
typedef boost::signals2::signal<T> SIG_T;
void connect( TYPE1 arg ){
s.connect(arg);
}
void fire ( TYPE2 arg ){
s(arg);
}
private:
SIG_T s;
};
那么如何表达 TYPE1 和 TYPE2 的正确类型,我假设它类似于 SIG_T::???
I would like to encapsulate a signals2::signal object ans expose the connect and operator() functions, but how does their prototypes look like?
Example:
#include <boost/signals2/signal.hpp>
template<typename T> class A {
public:
typedef boost::signals2::signal<T> SIG_T;
void connect( TYPE1 arg ){
s.connect(arg);
}
void fire ( TYPE2 arg ){
s(arg);
}
private:
SIG_T s;
};
So how to express the correct type for TYPE1 and TYPE2, I assume it is something like SIG_T::???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
connect
采用typename SIG_T::slot_type const &
。operator()
采用typename SIG_T::argument_type
(也定义为typename SIG_T::arg<0>::type
)。或者,您可以使用模板来避免担心确切的定义并接受任何可转换为正确类型的内容:
connect
takestypename SIG_T::slot_type const &
.operator()
takestypename SIG_T::argument_type
(also defined astypename SIG_T::arg<0>::type
).Alternatively, you could use templates to avoid worrying about the exact definition and accept anything convertible to the correct types:
signal
类概要为 此处,包括signal::connect
重载的签名。The
signal
class synopsis is here, including the signatures of thesignal::connect
overloads.