Boost logo

Boost :

From: shunsuke (pstade.mb_at_[hidden])
Date: 2007-03-20 20:18:19


Daniel Walker wrote:
> In my patch for result_of, lack of support for has_template_xxx is
> handled by checking BOOST_MPL_CFG_NO_HAS_TEMPLATE_XXX. In this case,
> partial specializations for lambda::lambda_functor are provided so
> that lambda expressions can be supported, even though user defined
> functors using sig<> cannot. result_of already requires that the
> compiler support partial specialization. So, to the best of my
> knowledge, this doesn't add an additional limitation on the number of
> compilers result_of can work on.

If 'result_of' customization way is not enough,
why not introduce a customization point.
     template<typename F, typename FArgs, typename EnableIf>
     struct extend_result_of;
Then, the customizations for lambda is placed at
<boost/lambda/result_of.hpp>.
That's generics. :-)

Anyway I don't recommand to touch 'result_of' for now.
IIRC, 'result_of' was born a few weeks ago; for VC++7.1/8 users.
Before Mr.Niebler's patch, it had been broken for long years
because of VC++ bugs.

As I pointed, a lambda::functor doesn't need any patch.
'bind' turns a function using 'sig' into a lambda::functor.
Thus, we have nearly everything without any patch.

On the other hand, "result_of<lambda>" project will be
an interesting work. What does "result_of<bind(..)>" return?
I want to know it :-)

Regards,

-- 
Shunsuke Sogame

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk