On peut aussi définir des amis d'un patron de classe. ces amis peuvent être des amis pour toutes les instanciations du patron, et peuvent eux-même êtres des patrons.
template <class T> class X{ friend void f(); // f ami de toutes les classes X friend X<T> g(<T>); // g est un patron ami du patron de classe //.. }