Boost logo

Boost :

Subject: Re: [boost] [result_of] Test fails on clang trunk and gcc-4.7 due to changes in FDIS
From: Eric Niebler (eric_at_[hidden])
Date: 2012-03-28 16:53:16


On 3/28/2012 1:19 PM, Michel Morin wrote:
> Eric Niebler wrote
>> On 3/28/2012 9:09 AM, Eric Niebler wrote:
>>> On 3/28/2012 4:39 AM, Michel Morin wrote:
>>>> In the code below,
>>>>
>>>> const int f(); decltype(f()) i = 0;
>>>>
>>>> `i` has type `int` (not `const int`) in C++11. This is because
>>>> `f()` is a prvalue of a non-class type (i.e. `const int`) and so
>>>> its cv qualifiers are ignored.
>>>>
>>>> C++0x drafts (before FDIS) had a special rule for function calls in
>>>> decltype: if e is a function call or an invocation of an overloaded
>>>> operator (parentheses around e are ignored), decltype(e) is the
>>>> return type of the statically chosen function; but this was removed
>>>> in FDIS.
>>> <snip>
>>>
>>> That wording should still be FDIS. That's decltype v1.1 that Stephan
>>> was referring to in the other result_of thread you've discussed.
>>
>> Unless I'm mistaken, the FDIS is N3290, and the wording is there. I have
>> it in front of me.
>
> Hmm…, my N3290 does not have such a wording in 7.1.6.2 (dcl.type.simple) p4.

The (non-normative) note in 7.1.6.2 about this is in p5, not p4. But the
normative text is in 5.2.2 p11.

> In N3291 (FDIS with diff), the wording is explicitly crossed out.
> Am I missing something?

OK, looking at N3291 now. First, I see the date of this paper is earlier
than N3290. Don't be misled by the fact that it has a higher N number.
It's possible Pete requested a number from Clark for the FDIS before he
asked for a number for the last working draft.

Regardless, I don't see the new text as crossed out. I see it in blue
and underlined to highlight the fact that it's new. Specifically, I'm
looking at 5.2.2 p11 and 7.1.6.2 p4.

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