
30 Oct
2009
30 Oct
'09
1:47 p.m.
#include <boost/fusion/include/vector.hpp> #include <boost/fusion/include/at.hpp>
class A { private: typedef boost::fusion::vector< boost::signal<void()>,
boost::signal<void (const string&)>
signals_type; signals_type m_signals; public: static const int VoidSignal = 0; static const int StringSignal = 1; template<int ID> typename boost::fusion::result_of::at_c<signals_type, ID>::type getSignal() { return boost::fusion::at_c<ID>(m_signals); } };
void f() { A a; a.getSignal<A::VoidSignal>()
}
It worked, Thanks, Surya