C++ PATCH: PR 20599 (1/3)

Doug Gregor doug.gregor@gmail.com
Tue Sep 19 16:43:00 GMT 2006


On 9/19/06, Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> wrote:
> -std=c++-experimental or -std=c++-experimental-0x

This seems reasonable. Actually, this gives me an idea for dealing
with C++0x. Let it be a straw man we can burn down at will :)

We could add two flags:
  -std=c++0x enables features that are very likely to become a part of
the upcoming C++0x standard. By "very likely" I mean they are either
in the working draft already or  have been voted into the working
draft.
  -std=experimental-c++0x enables all of the features that -std=c++0x
does, plus any other "experimental" C++0x features that have committee
proposals but haven't been voted into the working draft. This could
even spit out a warning at the beginning of compilation stating that
these features are experimental and may be removed.

These would be in addition to  Richard Guenther's -Wc++0x-compat to
warn about identifiers that may become keywords, and any
feature-specific flags (e.g., -Wno-variadic-templates).

> Another way of giving the code some test is to find a way to enable it
> only for the purpose of libstdc++.

The variadic templates patch doesn't warn about the use of variadic
templates inside system headers (e.g., #pragma GCC system_header) for
this very reason.

> As it has been mentionned, this
> feature simplifies a lot at least the tuple implementation (and I think
> I remember that nothing constrains the library to be implemented in
> "standard c++").

Right. In fact, we often rely on GCC extensions in the library, to
give better implementations.

  Doug



More information about the Gcc-patches mailing list