Status of Experimental C++0x Support in GCC 4.3

GCC provides experimental support for the upcoming ISO C++ standard, C++0x. This support can be enabled with the -std=c++0x or -std=gnu++0x compiler options; the former disables GNU extensions.

GCC's C++0x mode tracks the C++0x working paper drafts produced by the ISO C++ committee, available on the ISO C++ committee's web site at http://www.open-std.org/jtc1/sc22/wg21/. Since this standard is still being extended and modified, the feature set provided by the experimental C++0x mode may vary greatly from one GCC version to another. No attempts will be made to preserve backward compatibility with C++0x features whose semantics have changed during the course of C++0x standardization.

The following table lists which C++0x features are supported in this release of GCC. For more information about C++0x support in GCC, please see the C++0x in GCC project page.

Language Feature Proposal Available in GCC 4.3? Rvalue references N2118 Yes Rvalue references for *this N2439 No Variadic templates N2242 Yes Extending variadic template template parameters N2555 No Initializer lists N2672 No Static assertions N1720 Yes auto -typed variables N1984 No Multi-declarator auto N1737 No Removal of auto as a storage-class specifier N2546 No New function declarator syntax N2541 No Lambda expressions and closures N2550 No Constness of lambda functions N2658 No Declared type of an expression N2343 Yes Right angle brackets N1757 Yes Default template arguments for function templates DR226 Yes Solving the SFINAE problem for expressions DR339 No Template aliases N2258 No Extern templates N1987 Yes Null pointer constant N2431 No Strongly-typed enums N2347 No Generalized constant expressions N2235 No Alignment support N2341 No Delegating constructors N1986 No Inheriting constructors N2540 No Explicit conversion operators N2437 No New character types N2249 No Raw and Unicode string literals N2442 No Extended PODs N2342 No Initialization of class objects by rvalues N1610 No Extended friend declarations N1791 No Extending sizeof N2253 No Universal character name literals N2170 No Defaulted and deleted functions N2346 No Inline namespaces N2535 No Unrestricted unions N2544 No Local and unnamed types as template arguments N2657 No Minimal support for garbage collection and reachability-based leak detection N2670 No Concurrency Sequence points N2239 No Atomic operations N2427 No Memory model N2429 No C++ data-dependency ordering: atomics and memory model N2664 No Copying and rethrowing exceptions N2179 No Abandoning a process N2440 No Allow atomics use in signal handlers N2547 No Thread-local storage N2659 No Dynamic initialization and destruction with concurrency N2660 No C99 Features in C++0x __func__ predefined identifier N2340 Yes C99 preprocessor N1653 Yes long long N1811 Yes Extended integral types N1988 No