I find myself reviewing yet another C++ book. This time it's a new edition, not a new book. So it's already in a good shape and doesn't need much comment. This makes my work a lot easier.
For GCC, I just get back to member class as template friend feature as in code like
class C {
template <class T> friend class A<T>::X;
}
One more step is accomplished: checking class-key syntax error for codes like
template <class T> class C {
friend typename T::X; // Syntax error
friend typename T::X f(); // OK
};
is moved to parser. The new friend feature requires
the same internal representation as 'typename' so the diagnostics of such error cannot be performed in later stages.
Next step: making friend codes able to handle the typename representation.