Fehler: Ungültige Template-Argumentliste
-
Hallo.
Findet sich in folgender Anweisung ein Fehler?
vector< pair<string, TokenType> > tokens;
Ist die Deklaration ener Membervariable in einer Parserklasse.
Die benötigten Header sind eingebunden.
TokenType ist auch bekannt (enum).Im VisualC++.Net2003 ist das ganze auch gegangen.
Danach habe ich das selbe aber im BCB5 Kompiliert, und da ist dann der Fehler:
'Ungültige Template-Argumentliste' gekommen.Ausserdem hat der Borland Probleme mit allen pair Variablen.
pair<string, valType> p1; pair<string, TokenType> p2;
Ich kann mir das echt nicht erklären.
Was glaubt ihr was beim Borland (oder im code) fehlerhaft sein kann.
-
sicher, das du <utility> eingebunden hast, damit ees überhaupt std::pair gibt?
-
Ja ich habe sogar <utility> eingebunden. Obwohl es IMHO nicht nötig wäre. (Im VC++ ist es auch ohne gegangen)
-
probier doch einfach mal zum Test pair<int, int>
-
pair<int, int>
geht.
Dann wird es wohl daran liegen:
enum TokenType { /* ...*/ };
Aber warum gehts im VC++? Soll ich statt dem enum etwas anderes nehmen?
Oder würde es gehen, wenn ich in der Template-Argumentliste statt TokenType einfach int angebe? Da müsste doch automatisch konvertiert werden. Oder? (Ich denke nur laut nach)
-
Jover schrieb:
Oder würde es gehen, wenn ich in der Template-Argumentliste statt TokenType einfach int angebe? Da müsste doch automatisch konvertiert werden. Oder? (Ich denke nur laut nach)
Jap, jetzt gehts. Danke für den Hinweis aa.