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

View: New views
3 Messages — Rating Filter:   Alert me  

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

by Marc DelaCruz :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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.


_______________________________________________
Boost-users mailing list
Boost-users@...
http://lists.boost.org/mailman/listinfo.cgi/boost-users

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

by Igor R :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>    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@...
http://lists.boost.org/mailman/listinfo.cgi/boost-users

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

by Marc DelaCruz :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks.

I always miss the simple things...

----- Original Message -----
From: Igor R
[mailto:boost.lists@...]
To: boost-users@...
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@...
http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________
Boost-users mailing list
Boost-users@...
http://lists.boost.org/mailman/listinfo.cgi/boost-users