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