Template-Spezialisierung
-
Hallo,
kann ich ein Template mit einem Template spezialisieren? Ich versuche mal das in etwas Code zu packen:
template<int Size> class Typ1 { //... }; template<int Length, class T> class Typ2 { //... }; template<class T> class X { void Function(); } // das ist kein Problem ... template<> X<Typ1<8> >::Function() { // ... } // ... aber geht auch sowas irgendwie??? template<> X<Typ1<Size> >::Function() { } template<> X<Typ2<Length, Typ1<Size> > >::Function() { }Ich moechte also eine Spezialisierung fuer jede moegliche Konfiguration von Typ1 oder Typ2 haben ...
Falls das irgendwie geht, mit welcher Syntax???Vielen Dank,
Locke
-
Hallo,
geht, schaust du hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-128361-and-start-is-0.html
MfG
GPC
-
Klar geht das, du mußt nur die übriggebliebenen Template-Parameter mit angeben:
template<int Size> class X<Typ1<Size> >{ ... };//X-Spzialisierung für alle Typ1 template<int Length,int Size> class X<Typ2<Length,Typ1<Size> > >{ ... };//X-Spzialisierung für alle Typ2<...,Typ1>(Einzelne Memberfunktionen kannst du afaik nicht gesondert spezialisieren, nur die komplette Template-Klasse)