$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: John Maddock (john_at_[hidden])
Date: 2005-05-28 11:28:24
> Umm... yeah! And what was the error on Intel with the const empty type?
> ;-)
It was something useful like "Illegal base class".
> This is a pretty interesting point. I whipped this test up to explore:
>
> struct Base {};
>
> typedef const Base ConstBase;
>
> struct A
> : ConstBase
> {
> A() {}
> };
>
> It compiles on CW. But it doesn't on Comeau C++ Online (thanks Greg).
> Normally when CW and EDG disagree, the decision usually goes to EDG. So I
> started searching the standard for where it says that cv-qualified classes
> can't be used as base specifiers so that I could send our compiler team
> the bug report.
>
> Couldn't find it. So I started digging into the core issues list and
> found:
>
> http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#484
>
> Subject: Can a base-specifier name a cv-qualified class type?
>
> Ah, perfect.
>
>> The resolution of issue 298 added new text to 9.1 class.name paragraph
>> 5 making it clear that a typedef that names a cv-qualified class type is
>> a class-name. Because the definition of base-specifier simply refers to
>> class-name, it is already the case that cv-qualified class types are
>> permitted as base-specifiers.
>
> No kidding. And check out the date on that:
>
>> Rationale (April, 2005):
>
> Fresh from the Lillehammer presses! :-)
Right, but it's been declared a duplicate of issue 298, which was resolved
in April 2003, so it's that remarkable thing, an EDG deviation from the
standard.
Well researched!
John.