Gast
#507526
Ich schlag mich grade mit der template Klassen Unterst
|
Anzeige
|
template Klassen & static initializers
Gast
#507526
Ich schlag mich grade mit der template Klassen Unterst
Gast
#507528
(uups, da ist beim abschicken etwas verloren gegangen)
Ich schlag mich grade mit der template Klassen Unterstützung im GCC
herum.
Bei folgendem stark vereinfachtem Beispiel:
template<int nix> class ZZ
{
public:
static int A;
};
ZZ<4711> g_ZZ;
int ZZ<4711>::A=3; //<----: error: too few template-parameter-lists
gibts beim initialisieren des static members obige Fehlermeldung.
Auch ein Verstecken der template Klasse hinter einem typedef hilft
nicht:
typedef ZZ<4712> TZZ;
TZZ g_TZZ;
int TZZ::A=4; //<----: error: too few template-parameter-lists
Seltsam ist auch der Plural in der Fehlermeldung.
In VC++ (z.B.) kompiliert das ganze fehlerfrei, wie es auch sein soll.
Hat jemand eine Idee?
Natürlich kann man auch dieses Problem programiertechnisch umgehen, aber
bei dem wenigen was ich bezüglich templates in GCC ausprobiert habe gabs
überaschend viele Hakeleien.
Wie ist da eure Erfahrung?
Gast
#507577
> In VC++ (z.B.) kompiliert das ganze fehlerfrei, wie es auch sein soll. Eigentlich soll es nicht, weil die Syntax falsch ist. > Hat jemand eine Idee? template<> int ZZ<4711>::A=3;
Gast
#507606
Da schau her... Ich benutze obige Schreibweise seit den Anfangstagen der Templaterei und mir ist nie Aufgefallen das dies nicht ganz Konform ist (bei der Klassen Instanziierung: ZZ<4711> g_ZZ; erlaubt GCC es ja auch ohne template<> Vorsatz). Danke
Gast
#508161
Bei Instaziierungen ist das schon erlaubt, aber bei Spezialisierungen nicht. Antwort schreiben |
Anzeige
|