Technical data

Cray Standard C/C++ Reference Manual
Explicit specification of function template arguments is supported.
Unnamed template parameters are supported.
The new lookup rules for member references of the form x.A::B and
p->A::B are supported.
The notation :: template (and >template, etc.) is supported.
In a reference of the form f()->g(), with g a static member function, f() is
evaluated. Likewise for a similar reference to a static data member. The ARM
specifies that the left operand is not evaluated in such cases.
enum types can contain values larger than can be contained in an int.
Default arguments of function templates and member functions of class
templates are instantiated only when the default argument is used in a call.
String literals and wide string literals have const type.
Class name injection is implemented.
Argument-dependent (Koenig) lookup of function names is implemented.
Class and function names declared only in unqualified friend declarations are
not visible except for functions found by argument-dependent lookup.
A void expression can be specified on a return statement in a void function.
B.1.2 Unsupported Features
The following features, which are defined in the ISO/IEC 14882:1998 standard but
are not in traditional C++ are not supported:
reinterpret_cast does not allow casting a pointer to a member of one
class to a pointer to a member of another class if the classes are unrelated.
Two-phase name binding in templates as described in the Working Paper,is
not implemented.
Putting a try/catch around the initializers and body of a constructor is
not implemented.
Template template parameters are not implemented.
Universal character set escapes (e.g., \uabcd) are not implemented.
The export keyword for templates is not implemented.
160 S217936