C/C++ Programmer's Guide (G06.27+, H06.08+, J06.03+)

mutable is accepted on nonstatic data member declarations. [7.1.1 (9) Storage class
specifiers]
Namespaces are implemented, including using declarations and directives. Access declarations
are broadened to match the corresponding using declarations. [7.3 Namespaces]
Explicit instantiation of templates is implemented. [14.7.2 Explicit instantiation]
The typename keyword is recognized. [7.1.5.3 Elaborated type specifiers]
explicit is accepted to declare nonconverting constructors. [7.1.2 Function specifiers;
12.3.1 Conversion by constructor]
The scope of a variable declared in the for-init-statement of a for loop is the scope of
the loop (not the surrounding scope). [6.5.3 (4) The for statement]
The new specialization syntax (using "template <>") is implemented. [14.7 Template
specialization]
The distinction between trivial and nontrivial constructors has been implemented, as has the
distinction between PODs (plain ol' data) and non-PODs with trivial constructors. [12.1 (4, 5)
Constructors]
The linkage specification is treated as part of the function type (affecting function overloading
and implicit conversions). [7.5 Linkage specifiers]
extern inline functions are supported, and the default linkage for inline functions is external.
[7.1.2 (4) Function specifiers]
A typedef name can be used in an explicit destructor call. [7.1.3 The typedef specifier, 9.1
Class names; 12.4 Destructors]
Pointers to arrays with unknown bounds as parameter types are diagnosed as errors. [8.3.5
Functions]
Template friend declarations and definitions are permitted in class definitions and class template
definitions. [14.5.3 Friends]
Member templates are implemented. [14.5.2 Member templates]
Cv-qualifiers are retained on rvalues (in particular, on function return values). [3.10 Lvalues
and rvalues]
Placement delete is implemented. [18.4.1.3 Placement forms]
An array allocated via a placement new can be deallocated via delete. [18.4.1.2 Array
forms]
Covariant return types on overriding virtual functions are supported. [10.3 (5) Virtual functions]
enum types are considered to be nonintegral types. [7.2 Enumeration types]
Partial specialization of class templates is implemented. [14.5.4 Class template partial
specialization]
Partial ordering of function templates is implemented. [14.5.5.2 Partial ordering of function
templates]
Function declarations that match a function template are regarded as independent functions,
not as "guiding declarations" that are instances of the template. [14.5.5 Function templates]
Features Not Supported in VERSION2
These features are not accepted in the VERSION2 dialect of native C++. These features are not in
the The Annotated C++ Reference Manual (Ellis and Stroustrup) but are in the X3J16/WG21
Working Paper (WP) [The relevant sections of the WP are cited inside brackets]:
It is not possible to overload operators using functions that take enum types and no class types.
[13.3.1.2 Operators in expressions]
enum types cannot contain values larger than can be contained in an int. [7.2 (5) Enumeration
types]
Features Not Supported in VERSION2 435