
I'm trying to use bind() on a class member variable of type boost::signal but it fails with the message (GCC 4.0.2): /usr/include/boost/noncopyable.hpp:27: error: ‘boost::noncopyable_::noncopyable::noncopyable(const boost::noncopyable_::noncopyable&)’ is private /usr/include/boost/signals/detail/signal_base.hpp:120: error: within this context I understand that signals are non-copyable per design, yet I'd like to be able to bind them somehow ;-) Is there a better way of doing that other than through a member function acting as a forwarding agent? For example: #include <boost/signal.hpp> #include <boost/bind.hpp> #include <boost/function.hpp> using namespace boost; struct foo { signal0<void> on_event; void on_event_fwd() { on_event(); } }; int main(int, char**) { foo fo; function0<void> f = bind(&foo::on_event, &fo); <-- doesn't compile // forward to signal, oh well // function0<void> f = bind(&foo::on_event_fwd, &fo); return 0; } Cheers, Slawomir Lisznianski