Ovanes,
you are right in as much as there's something wrong with what's inside
the if. Problem is, I've tried far more than just what I posted here
and I couldn't get it to compile once. So I figured I may use if_ the
wrong way.
Anyway, not posting a standalone example is generally not a good idea
but I wanted to focus more on the general idea and how to tackle it
rather than what may be wrong with a particular code example I may or
may not have. Anyway, I'll attach at least a standalone test of what I
meant here.
It shows the error nicely but contains lots of other crap I've played
around with.
Cheers,
Stephan
On Wed, Jun 23, 2010 at 6:50 PM, Ovanes Markarian
Stephan, hi! please see my answer below.
On Wed, Jun 23, 2010 at 5:42 PM, Stephan Menzel
wrote: Unless I want to add something. Unfortunately I can't always take wrap()s output but have to modify a little. In fact, my Queue needs to be templatized as well, modifying the behaviour of the functor. I have a template parameter "Calling". When it is true, another function shall be called by the functor after the method was posted. Now I wanted to do this by phoenix:
template <bool Calling> class Queue { template<typename Handler> void post(Handler n_handler) { m_iosrv.post(n_handler); }; ... template
boost::signals2::connection connect(boost::signals2::signal<SlotSignature> &n_signal, SlotFunction n_method) { return n_signal.connect( if_( CallingBack ) [ post(n_method) , m_signal_callback() ] .else_ [ m_iosrv.wrap( n_method ) ] ); }; ... It is difficult to conclude smth from the code without having a self-containing example. But my assumption is that in the 'else'-branch your code does not generate a function object. As far as I can see in the 'if'-branch your code generates a function object using the the comma-operator (if that operator is overloaded in Phoenix), in the 'else'-branch you just have a normal function call, which is not lazy and does not return a function-object. Hope that helps, Ovanes
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users