Note: IBM supports selected features of
C++11, known as C++0x before its ratification. IBM will continue to develop and
implement the features of this standard. The implementation of the
language level is based on IBM's interpretation of the standard. Until
IBM's implementation of all the C++11 features is complete, including
the support of a new C++11 standard library, the implementation may
change from release to release. IBM makes no attempt to maintain compatibility,
in source, binary, or listings and other compiler interfaces, with
earlier releases of IBM's implementation of the new C++11 features.
In the C++11 standard, the extended friend declarations
feature is introduced, with which you can declare template parameters
as friends. This makes friend declarations inside templates easier
to use.
If a friend declaration resolves to a template parameter,
then you cannot use an elaborated-type-specifier in this friend declaration;
otherwise, the compiler issues an error.