Feature | gcc -std=c++0x on Win32 |
MSVC | Approximation (green if w/C++0x syntax) |
Good "Entry Point" Proposal |
Course Coverage | Remarks | ||||
4.3 | 4.4 | 4.5 | 4.6 | 9 | 10 | |||||
auto-typed variables | N | Y | A | A | N | Y | 1984 | F | ||
Lambda Expressions | N | N | Y | A | N | Y | Boost.Lambda | 2550 | F | |
Rvalue References | Y | Y | A | A | N | Y | 2027 | F | ||
decltype | Y | Y | A | A | N | Y | 1978 | F | ||
Uniform initialization Syntax | n | Y | Y | Y | n | n | 2640 | F | gcc 4.4 rejects nested inits e.g., { { … } { … }} and 4.4 and 4.5 fail to reject some narrowing conversions. gcc 4.6 appears to fix these issues. | |
Template aliases | n | n | n | n | n | n | 1489 | F | AKA template typedefs | |
Variadic Templates | Y | Y | A | A | N | N | 2080 | F | ||
static_assert | Y | Y | A | A | N | Y | Boost.Static Assert | 1720 | F | |
Delegating Constructors | n | n | n | n | n | n | 1986 | F | AKA forwarding constructors | |
Inheriting Constructors | N | N | n | n | N | N | 2540 | F | ||
Default & Deleted Functions | N | Y | A | Y | N | N | 2346 | F | ||
Implicitly-generated move operations | n | n | n | Y | n | n | 3053 | F | ||
Default member initialization values | N | N | n | n | N | N | 2756 | F | ||
explicit Conversion Operators | n | n | Y | A | n | n | 2437 | F | ||
Trailing Return Types | N | Y | A | A | N | Y | 1705 | F | ||
Right angle bracket as default template closer | Y | Y | A | A | Y | Y | 1757 | F | ||
Strongly typed enums (enum classes) | N | Y | A | A | N | N | 2347 | F | Includes ability to specify underlying type | |
long long int, long double | Y | Y | A | A | Y | Y | 1811 | B | N1811 is for long long only. | |
Extern templates | Y | Y | A | A | Y | Y | 1987 | B | Selectively suppresses implicit template instantiation. | |
__func__ | Y | Y | A | A | N | N | 2251 | B | ||
Range-Based for Loop | N | N | n | Y | n | n | Boost.Foreach | 2930 | F | |
New Character Encodings | N | y | Y | A | N | n | 1823 | F | gcc
4.4 rejects u8 prefix. VC10 rejects new char types and new literal types. |
|
Local Classes as Template Args | N | n | Y | A | Y | Y | 2657 | B | ||
Forward-declared enums | n | n | n | Y | Y | Y | 2764 | B | VC9/10 rejects underlying type specification | |
nullptr | n | n | N | Y | n | Y | 2431 | F | ||
noexcept | n | n | n | Y | n | n | 3050 | B | gcc 4.6 compilation noticably slows when using this | |
& and && Member Functions | N | N | N | N | N | N | 1821 | B | ||
Relaxed POD Definition | n | y | y | A | n | n | 2342 | B | ||
Scoped Allocators | N | N | 2554 | B | ||||||
2654 | ||||||||||
C99 Compatibility | y | y | B | Includes preprocessor mods, | ||||||
Alignment control | N | n | Y | Y | N | N | 2140 | F | gcc supports alignof, but not alignas | |
Attributes | N | N | n | n | N | N | 2761 | B | Attribute overview + final, noreturn, align. (align has since been removed.) | |
2782 | Covers carries_dependency | |||||||||
Override control | N | N | N | N | N | N | 3206 | B | Replaces attributes base_check, final, override, and hiding. | |
Raw string literals | N | N | Y | A | N | N | 2146 | F | ||
User-defined literals | n | n | N | n | n | n | 2750 | B | These are compile-time constants | |
Unrestricted Unions | N | N | n | y | N | N | 2544 | B | Union members may be of any non-reference type. | |
sizeof Member Variables | N | n | Y | A | N | N | 2253 | B | sizeof(class::member) now okay. | |
Generalized constant expressions (constexpr) | N | N | n | Y | N | N | 2235 | B | ||
inline namespaces | n | y | Y | A | N | N | 2535 | B | An overview available at http://tinyurl.com/4gss7ot. | |