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 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 :)


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