Ich refaktoriere derzeit einige Code, der explizit eine Member-Funktion einer Klassenvorlage mit zwei Vorlagenelementen spezialisiert.
template
class Foo
{
void bar();
};
template
void Foo::bar()
{ /* Generischer Code */ }
template <>
void Foo::bar()
{ /* Einige spezielle Funktion */ }
Jetzt habe ich einige weitere Vorlagenelemente hinzugefügt, sodass die Klasse jetzt so aussieht:
template
class Foo
{
void bar();
};
Diese beiden zusätzlichen Elemente fügen nur Typdefinitionen zu meiner Klasse hinzu, sodass sich die Laufzeitfunktionalität nicht wirklich ändert. Gibt es eine Möglichkeit, die (jetzt teilweise) spezialisierte Implementierung von bar beizubehalten? Ich scheine die Syntax dafür nicht herausfinden zu können und habe den Verdacht, dass es möglicherweise nicht möglich ist.
Bearbeiten: Ich suche etwas wie:
template
void foo::bar()
{
/* spezialisierte Implementierung */
}
was anscheinend nicht kompiliert...