Subject: Re: [boost] [result_of] Make `cpp0x_result_of_impl` public
From: Eric Niebler (eric_at_[hidden])
Date: 2012-03-27 13:35:01
On 3/24/2012 1:52 AM, Michel Morin wrote:
> There are two implementations of boost::result_of: a TR1-style
> implementation and a decltype-based implementation. While
> the TR1-style implementation has a public interface `boost::tr1_result_of`,
> decltype-based one doesn't have a public interface.
Yes, I'm the one responsible for this change.
> By defining BOOST_RESULT_OF_USE_DECLTYPE,
> boost::result_of use decltype-based implementation.
> But this is not always a viable solution, since this breaks
> some Boost libraries.
> So how about adding `boost::cxx11_result_of` as public interface
> of the decltype-based implementation?
> Attached a patch to add `boost::cxx11_result_of`.
> (This patch also changes the name of `cpp0x_result_of_impl`
> to `cxx11_result_of_impl` to reflect the recent discussion on
> the cpp/cxx naming.)
The patch looks fine, and I guess I'm as qualified to apply it as
anybody. But it doesn't have docs and tests. Care to address that? The
docs probably only need a line or two, and you can copy the tests for
> Is it worth trying to use this `boost::cxx11_result_of`
> in `boost::transform_iterator` code on trunk?
Now that we have a macro to detect compliance with N3256, we have a way
to safely enable decltype-based result_of by default. We should think
about doing that and fixing the bugs this will flush out. This should be
a separate step, though, and it should be done very early in a release
-- Eric Niebler BoostPro Computing http://www.boostpro.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk