Boost :: signals2 :: signal :: connect

的原型是什么? 我想封装一个signals2 :: 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 :: ???     
已邀请:
connect
需要
typename SIG_T::slot_type const &
operator()
typename SIG_T::argument_type
(也定义为
typename SIG_T::arg<0>::type
)。 或者,您可以使用模板来避免担心确切的定义并接受任何可转换为正确类型的内容:
template <typename Slot> void connect(Slot const & slot) {s.connect(slot);}
template <typename Arg> void fire(Arg const & arg) {s(arg);}
    
signal
类概要在这里,包括
signal::connect
重载的签名。     

要回复问题请先登录注册