template Klassen & static initializers

Gast #507528
Lesenswert?
• ▲
▼
(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 #507606
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.