#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