[Signals2] Wrapper function for connecting slot won't compile

I have code similar to the following: template<typename A> class SomeClass { void memFunc(FileDescBase&) { ... } }; template<typename B> class OtherClass { void setOpenCallBack(boost::signals2::signal<void (FileDescBase&)
::slot_type const& rOpenSlot) { mOpenSignal.connect(rOpenSlot); }
void setCallBacks() { SomeClass myClass; setOpenCallBack(boost::bind(&SomeClass<B>::memFunc, &myClass)); //does not compile setOpenCallBack(boost::signals2::signal<void (FileDescBase&)
::slot_type(&SomeClass<B>::memFunc, &myClass)); //does not compile either } boost::signals2::signal<void (FileDescBase&) > mOpenSignal; };
Even a direct call to mOpenSignal.connect(boost::signals2::signal<void (FileDescBase&) >::slot_type(&SomeClass<B>::memFunc, &myClass)) does not comiple. Thanks.

SomeClass myClass; setOpenCallBack(boost::bind(&SomeClass<B>::memFunc, &myClass)); //does not compile
Your memFun() has 1 argument, and you have express this in the bind: setOpenCallBack(boost::bind(&SomeClass<B>::memFunc, &myClass, _1));

Thanks. I always miss the simple things... ----- Original Message ----- From: Igor R [mailto:boost.lists@gmail.com] To: boost-users@lists.boost.org Sent: Mon, 06 Jul 2009 18:15:14 -0500 Subject: Re: [Boost-users] [Signals2] Wrapper function for connecting slot won't compile
SomeClass myClass; setOpenCallBack(boost::bind(&SomeClass<B>::memFunc, &myClass)); //does
not compile
Your memFun() has 1 argument, and you have express this in the
bind:
setOpenCallBack(boost::bind(&SomeClass<B>::memFunc, &myClass,
_1));
Boost-users mailing
list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (3)
-
Igor R
-
Marc dela Cruz
-
Marc DelaCruz