Template Spezialisierung
-
hi,
Folgender Code erzeugt Fehler beim Compilieren:
error C2989: 'Vector<T,2>' : Vorlagenklasse wurde bereits als Nicht-Vorlagenklasse definiert
error C2988: Unerkannte Vorlagendeklaration/-definition/* Klasse für Vektoren T ist der Typ der Koordinaten d ist die Anzahl der Koordinaten (=Dimension) */ template<class T, unsigned int d> class Vector { /*...*/ }; template<class T> class Vector<T, 2> { /*...*/ };
Ist es möglich in diesem Beispiel den Typ der Koordinaten (T) nicht zu spezialisieren, aber gleichzeitig die Dimension d der Klasse zu spezialisieren.
-
partielle spezialisierung gibts nur bei funktionen
-
otze schrieb:
partielle spezialisierung gibts nur bei funktionen
Hö? Verwechselst du das gerade? Bei Funktionen und Memberfunktionen geht es gerade nicht.
bluecode, dein Code ist korrekt. Mein g++ 3.3.5 kompiliert ihn auch anstandslos.
Kann es vielleicht daran liegen, dass du den MSVC nimmst?
Der hat da so seine Probleme afaik..
-
[quote="ChrissiB"]
otze schrieb:
Kann es vielleicht daran liegen, dass du den MSVC nimmst?
Exakt.
-
Hol dir Dev-C++ oder mingw.
Und teste es erstmal mit dem. (sollte funktionieren)
Ich weiß es nicht, aber es kann ja sein, dass es für den VC++ irgendnen Patch gibt, der solche Probleme beseitigt. Ich dabe den nie verwendet.
-
ChrissiB schrieb:
otze schrieb:
partielle spezialisierung gibts nur bei funktionen
Hö? Verwechselst du das gerade? Bei Funktionen und Memberfunktionen geht es gerade nicht.
jupp, habs verwechselt
zur strafe werd ich jetzt ne halbe stunde lang meinen kopf gegen die nächste wand donnern.
-
Es scheint leider so, dass das MSVC++ SP5 auch nicht frisst!
-
Hab jetzt Dev-C++ und funktioniert 1A
Danke!
-
Ich würde dir empfehlen, zusätzlich cygwin zu installieren. Als ich noch win hatte, hab ich festgestellt, dass der nicht nur manchmal(vor allem bei templates) brauchbarere Fehlerbeschreibungen liefert (besser als "interner Kompilerfehler" alle mal...), sondern manchmal (später bei mir dann leider oft...) zeigt, dass du (wieder mal) an die Grenzen des MSVC gestoßen bist...
-
bluecode schrieb:
Es scheint leider so, dass das MSVC++ SP5 auch nicht frisst!
Dann besorg dir 'nen aktuellen MSC (ab Version 7.1).
otze schrieb:
zur strafe werd ich jetzt ne halbe stunde lang meinen kopf gegen die nächste wand donnern.
Das will ich sehen.
-
groovemaster schrieb:
otze schrieb:
zur strafe werd ich jetzt ne halbe stunde lang meinen kopf gegen die nächste wand donnern.
Das will ich sehen.
hats verpasst