Boost logo

Boost :

Subject: Re: [boost] decltype and incomplete types
From: Eric Niebler (eric_at_[hidden])
Date: 2010-04-09 15:35:20


On 4/8/2010 4:25 PM, Daniel Walker wrote:
> On Thu, Apr 8, 2010 at 6:51 PM, Eric Niebler <eric_at_[hidden]> wrote:
>> On 4/8/2010 3:07 PM, Daniel James wrote:
>>> This reverts the fixes for:
>>>
>>> https://svn.boost.org/trac/boost/ticket/862
>>
>> Support for boost.lambda.
>>
>> This bug is invalid to begin with. Lambda should be changed to support the
>> TR1 result_of protocol (which is standard), not the other way around.
>
> No, the result_of in this patch can detect the type of any callable
> object, including those from boost.lambda, in contexts where the type
> of the call expression is complete. Now, lambda users who would like
> to query the type of lambda function objects should use their
> compiler's std::result_of, if it implements any draft of the standard
> from the past 2 years, or simply roll their own.

Hi Daniel,

IIUC the fix here for Boost.Lambda was to implement the c++0x result_of
on supporting compilers. That's fine -- as long as you accept that a
decltype-based result_of is a safe substitute for the TR1 result_of,
which I don't.

My point above was that this bug should have been closed "Invalid"
because it's not a result_of problem. The problem is that Lambda doesn't
support the TR1 result_of protocol. This isn't news. The standard
response is to use Phoenix. I don't particularly like that answer
because ...

(a) Phoenix isn't a top-level boost library and is likely to change once
we get Phoenix ported to Proto, and

(b) Lambda has a big installed user-base who won't benefit from
improvements to Phoenix.

But all this is a side issue. The real issue is to back out the decltype
change (and ONLY the decltype change) to result_of on trunk, and merge
the change to release as soon as we get the green light from the
regression tests.

Let me know if you need a patch for this.

-- 
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