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.
>>> 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 220.127.116.11 (dcl.type.simple) p4.
The (non-normative) note in 18.104.22.168 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 22.214.171.124 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