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