Difference between revisions of "多种编译器对C++11的支持"

From KlayGE
Jump to: navigation, search
Line 10: Line 10:
 
| Initialization of class objects by rvalues || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html N1610] || '''9.0''' || '''4.3''' || '''11.1''' || '''2.9''' ||
 
| Initialization of class objects by rvalues || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html N1610] || '''9.0''' || '''4.3''' || '''11.1''' || '''2.9''' ||
 
|-
 
|-
| Non-static data member initializers || [http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm N2756] || No || '''4.7''' || '''14.0''' || '''3.0''' ||
+
| Non-static data member initializers || [http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm N2756] || '''12.0''' || '''4.7''' || '''14.0''' || '''3.0''' ||
 
|-
 
|-
 
| Variadic templates || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf N2242] || '''Nov 12''' || '''4.3''' || '''12.1''' || '''2.9''' ||
 
| Variadic templates || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf N2242] || '''Nov 12''' || '''4.3''' || '''12.1''' || '''2.9''' ||
Line 40: Line 40:
 
| Solving the SFINAE problem for expressions || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html DR339] || No || '''4.4''' || '''12.1''' || '''2.9''' ||
 
| Solving the SFINAE problem for expressions || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html DR339] || No || '''4.4''' || '''12.1''' || '''2.9''' ||
 
|-
 
|-
| Template aliases || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf N2258] || No || '''4.7''' || '''12.1''' || '''3.0''' ||
+
| Template aliases || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf N2258] || '''12.0''' || '''4.7''' || '''12.1''' || '''3.0''' ||
 
|-
 
|-
 
| Extern templates || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm N1987] || '''9.0''' || '''4.3''' || '''11.1''' || '''2.9''' ||
 
| Extern templates || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm N1987] || '''9.0''' || '''4.3''' || '''11.1''' || '''2.9''' ||
Line 74: Line 74:
 
| Standard Layout Types || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm N2342] || '''11.0''' || '''4.5''' || No || '''3.0''' ||
 
| Standard Layout Types || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm N2342] || '''11.0''' || '''4.5''' || No || '''3.0''' ||
 
|-
 
|-
| Defaulted and deleted functions || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm N2346] || No || '''4.4''' || '''12.0''' || '''3.0''' ||
+
| Defaulted and deleted functions || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm N2346] || '''12.0''' || '''4.4''' || '''12.0''' || '''3.0''' ||
 
|-
 
|-
 
| Extended friend declarations || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf N1791] || '''10.0''' || '''4.7''' || '''12.0''' || '''2.9''' ||
 
| Extended friend declarations || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf N1791] || '''10.0''' || '''4.7''' || '''12.0''' || '''2.9''' ||

Revision as of 04:31, 29 June 2013

C++11核心语言功能

功能 提案 MSVC GCC ICC Clang 替代方案
Rvalue references N2118 10.0 4.3 12.0 2.9 Boost.Move
Rvalue references for *this N2439 No 4.8.1 14.0 2.9
Initialization of class objects by rvalues N1610 9.0 4.3 11.1 2.9
Non-static data member initializers N2756 12.0 4.7 14.0 3.0
Variadic templates N2242 Nov 12 4.3 12.1 2.9
Extending variadic template template parameters N2555 Nov 12 4.4 No 2.9
Initializer lists N2672 Nov 12 4.4 14.0 3.1
Static assertions N1720 10.0 4.3 11.1 2.9 Boost.StaticAssert
auto-typed variables N1984 10.0 4.4 12.0 2.9 Boost.Typeof
Multi-declarator auto N1737 10.0 4.4 12.0 2.9 Boost.Typeof
Removal of auto as a storage-class specifier N2546 10.0 4.4 12.0 2.9 Boost.Typeof
New function declarator syntax N2541 10.0 4.4 12.0 2.9 Boost.ReturnType
New wording for C++11 lambdas N2927 10.0 4.5 12.0 3.1 Boost.Lambda
Declared type of an expression N2343 10.0 4.3 12.0 2.9 Boost.Typeof
Incomplete return types N3276 11.0 4.8.1 12.1 3.1
Right angle brackets N1757 9.0 4.3 11.1 2.9 TR1
Default template arguments for function templates DR226 Nov 12 4.3 12.1 2.9
Solving the SFINAE problem for expressions DR339 No 4.4 12.1 2.9
Template aliases N2258 12.0 4.7 12.1 3.0
Extern templates N1987 9.0 4.3 11.1 2.9
Null pointer constant N2431 10.0 4.6 12.1 3.0 自己实现的null_ptr
Strongly-typed enums N2347 11.0 4.4 14.0 2.9 #define
Forward declarations for enums N2764 11.0 4.6 14.0 3.1
Generalized attributes N2761 No 4.8 12.1 3.3
Generalized constant expressions N2235 No 4.6 14.0 3.1
Alignment support N2341 No 4.8 No 3.3
Delegating constructors N1986 Nov 12 4.7 14.0 3.0
Inheriting constructors N2540 No 4.8 No 3.3
Explicit conversion operators N2437 Nov 12 4.5 14.0 3.0
New character types N2249 No 4.4 14.0 2.9
Unicode string literals N2442 No 4.5 No 3.0
Raw string literals N2442 Nov 12 4.5 14.0 3.0
Universal character name literals N2170 No 4.5 No 3.1
User-defined literals N2765 No 4.7 No 3.1
Standard Layout Types N2342 11.0 4.5 No 3.0
Defaulted and deleted functions N2346 12.0 4.4 12.0 3.0
Extended friend declarations N1791 10.0 4.7 12.0 2.9
Extending sizeof N2253 No 4.4 No 3.1
Inline namespaces N2535 No 4.4 14.0 2.9
Unrestricted unions N2544 No 4.6 14.0 3.1
Local and unnamed types as template arguments N2657 9.0 4.5 12.0 2.9
Range-based for N2930 11.0 4.6 13.0 3.0 Boost.Foreach
Explicit virtual overrides N2928 11.0 4.7 No 3.0 #define
Minimal support for garbage collection and reachability-based leak detection N2670 10.0 No No No
Allowing move constructors to throw [noexcept] N3050 No 4.6 14.0 3.0
Defining move special member functions N3053 No 4.6 14.0 3.0

C++11核心语言功能:并行

功能 提案 MSVC GCC ICC Clang 替代方案
Sequence points N2239 No 4.8 No 3.3
Atomic operations N2427 11.0 4.4 13.0 3.1 Boost.Atomic
Strong Compare and Exchange N2748 11.0 4.8 No 3.1
Bidirectional Fences N2752 11.0 4.8 No 3.1
Memory model N2429 No 4.8 No 3.2
Data-dependency ordering: atomics and memory model N2664 11.0 4.8 No No
Propagating exceptions N2179 10.0 4.4 12.0 2.9 Boost.Exception
Abandoning a process and at_quick_exit N2440 No 4.8 No No
Allow atomics use in signal handlers N2547 No 4.8 No 3.1
Thread-local storage N2659 No 4.8 No 3.3 Boost.Thread
Dynamic initialization and destruction with concurrency N2660 No 4.8 No No

C++11核心语言功能:C99

功能 提案 MSVC GCC ICC Clang 替代方案
__func__ predefined identifier N2340 No 4.3 11.1 2.9 __FUNCTION__
C99 preprocessor N1653 No 4.3 11.1 2.9
long long N1811 9.0 4.3 11.1 2.9 __int64
Extended integral types N1988 No 4.8 No No

相关内容

使用到的C++11特性