Technical data

Cray Standard C/C++ Dialects [B]
Definition of a nested class outside its enclosing class is allowed.
mutable is accepted on nonstatic data member declarations.
Namespaces are implemented, including using declarations and directives.
Access declarations are broadened to match the corresponding using
declarations.
Explicit instantiation of templates is implemented.
The typename keyword is recognized.
explicit is accepted to declare nonconverting constructors.
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).
Member templates are implemented.
The new specialization syntax (using template <>) is implemented.
Cv qualifiers are retained on rvalues (in particular, on function return
values).
The distinction between trivial and nontrivial constructors has been
implemented, as has the distinction between process overlay directives
(PODs) and non-PODs with trivial constructors.
The linkage specification is treated as part of the function type (affecting
function overloading and implicit conversions).
A typedef name can be used in an explicit destructor call.
Placement delete is supported.
An array allocated via a placement new can be deallocated via delete.
enum types are considered to be nonintegral types.
Partial specification of class templates is implemented.
Partial ordering of function templates is implemented.
Function declarations that match a function template are regarded as
independent functions, not as guiding declarationsthat are instances of
the template.
It is possible to overload operators using functions that take enum types
and no class types.
S217936 159