This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]