[C++] Patch c++/15049
Matt Austern
austern@apple.com
Fri Sep 17 18:47:00 GMT 2004
On Sep 17, 2004, at 10:43 AM, Paolo Carlini wrote:
> Matt Austern wrote:
>
>> If the proposed resolution of DR389 is accepted (which it probably
>> will be; that's what status "ready" means), then this example will be
>> illegal. So the status right now, in my opinion, is that this code
>> is legal in the current version of C++ (the 1998 standard plus the
>> 2003 technical corrigendum) but that it will probably be illegal in
>> the next version of C++ ("C++0x").
>
> Thanks for the clarification: indeed, this matches my reading of the
> audit trail + references therein.
>
>> To some extent this is a bureaucratic issue, not a technical one. At
>> the moment we've got two version of the standard, "C++98" and
>> "C++03". Defect reports aren't part of either standard. We can use
>> defect reports to try to figure out the intent of the committee if we
>> believe that the current standard is ambiguous or if it just leaves
>> something out, but that's not the case here. My interpretation is
>> that CWG issue 389 is proposing a change.
>
> Interesting... You know, in the library often we consider the "Ready"
> resolutions as part of the standard that we are actually implementing:
> probably, we (I, in the first place, to be clear!) don't tell very
> accurately resolutions about ambiguities from resolutions about
> changes... Hummm...
I hadn't noticed that! Every place I'd noticed reference to DRs, I'd
been impressed by how scrupulous people were about distinguishing
between what the standard says and what the issue lists had.
My advice on what our policy should be (and again, this is what I
though our policy was):
- We should conform as closely as possible to C++-03. We shouldn't
attempt to have C++98 and C++03 as separate modes.
- If an issue has status "WP" (not "Ready", which is a a lesser
status), then in some cases we should consider incorporating it. In
some cases it should be unconditional (if it's strictly upward
compatible with C++03 and if it's important), otherwise it should be
conditionalized by a flag or macro.
- If we genuinely can't do what the standard says (if the standard is
contradictory or unimplementable, or if it's ambiguous and we don't
know what the correct interpretation is) then we can use informal means
to figure out what to do instead. But we should always put in comments
to make it clear that that's what we're doing.
--Matt
More information about the Gcc-patches
mailing list