Note: C++0x is a new version of
the C++ programming language standard. This is a draft standard and
has not been officially adopted in its entirety. Note that future
levels of support for this standard are likely to change. The implementation
of the language level is based on IBM's interpretation of the draft
C++0x standard, and is subject to change at any time without notice.
IBM makes no attempt to maintain compatibility with earlier releases,
in source or binary, of the new C++0x -qlanglvl suboptions (their
names or their semantics) and therefore they should not be relied
on as a stable programming interface.
In
the C++0x 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.