Boost logo

Boost :

From: Doug Gregor (dgregor_at_[hidden])
Date: 2007-04-27 15:40:16


On Apr 27, 2007, at 3:24 PM, Eric Niebler wrote:
> Huh, they say it's not a bug.
>
> ------- Comment #1 from pinskia at gcc dot gnu dot org 2007-04-27
> 20:16
> -------
> No, the error message is correct. You change the meaning of
> match_context in
> the class.
>
> Doing:
> typedef ::match_context<BidIter> match_context;
>
> Fixes the source to be valid C++. Note C++ does not really require a
> diagnostic here (it is one of the invalid code that C++ does not
> require
> one).
> ----
>
>
> Seems odd to me, but I don't have time to dig in the standard right
> now.
> GCC 4.3 is the only compiler that complains about this. Even Comeau
> accepts it.

Ah, they're right. This is the first paragraph of
[basic.scope.class], which says:

2) A name N used in a class S shall refer to the same declaration in
its context and when re-evaluated in the completed
scope of S. No diagnostic is required for a violation of this rule.

I think that's the first time---ever---where I've seen GCC be more
picky than EDG in strict mode :)

        - Doug


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk