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 (dcl.type.simple) p4.

The (non-normative) note in 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 p4.

Eric Niebler
BoostPro Computing

Boost list run by bdawes at, gregod at, cpdaniel at, john at