Ebenso wenig ist es erlaubt, daß nichtparametrisierte Klassen und parametrisierte Klassen denselben Namen tragen:
class X // Das ist verboten! Es existiert schon ein Template { public: char ch; int operator==(X); };
Erlaubt ist hingegen Spezialisierungen für spezielle Typen zu schreiben:
class X{ public: char ch; int operator==(X ); };
Diese Spezialisierung verhindert dann nach den auch für Klassentemplates anzuwendenen Auflösungsstrategien einer Generierung aus dem Template.