This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: C++ PATCH: PR 20599 (1/3)
On Sep 25, 2006, at 9:58 AM, Howard Hinnant wrote:
I would prefer something more like:
g++ my_source.cpp -enable_rvalue_refs -enable_variadic_templates -
enable_static_assert -lboost -lAcme
Whereas I would prefer, e.g.,
g++ -std=c++0x -lboost -lAcme
Otherwise, users need to track exactly what we're done in each minor
release to try out these features. For instance, with GCC 4.3.0 users
might need to write:
g++ my_source.cpp -enable_rvalue_refs -enable_variadic_templates -
enable_static_assert -lboost -lAcme
Then for GCC 4.3.1 we implement more of the C++0x working draft, so
we now have:
g++ my_source.cpp -enable_rvalue_refs -enable_variadic_templates -
enable_static_assert -enable-decltype -enable-auto -lboost -lAcme
Then maybe the committee changes its mind, so we yank a feature [*]
from GCC 4.3.2 and get:
g++ my_source.cpp -enable_rvalue_refs -enable_variadic_templates -
enable-decltype -enable-auto -lboost -lAcme
Now users need to determine the patch level of g++ to enable C++0x
features. If we have one flag, the variance in features from version
to version will be queried through feature-test macros (supplied by
the compiler). Users just decide whether they want the C++0x features
or not.
When C++0x goes out the door, we add -std=c++09 (just guessing <g>)
for the new standard and deprecate -std=c++0x. It's not much
different from what we're already doing with -std=c9x and -std=c99.
Cheers,
Doug
[*] No, I'm not trying to eliminate static_assert; just illustrating
the issue :)