expected ‘;’ before ‘iter’, Problem bei iterator-Definition
-
Hallo,
ich hab ein kleines Problem bei der Definition eines iterators für einen Vectorstd::vector< std::vector< Matrix<int, DIMENSION<TYPE, RANK>::DIM, 1>* > >::iterator iter;Hier gibt mir der Compiler folgendes aus:
expected ‘;’ before ‘iterWenn ich nur
std::vector< std::vector< Matrix<int, DIMENSION<TYPE, RANK>::DIM, 1>* > > iter;oder
std::vector< std::vector< Matrix<int, 3, 1>* > >::iterator iter;schreibe, dann kompiliert er ohne Probleme (da ich mit iter bis jetzt noch nichts mache).
Die Matrixklasse kommt aus Eigen 2.0.15.
Der Code für DIMENSION<TYPE, RANK>::DIM sieht folgendermaßen aus:template<RootSystemType TYPE, int RANK> class DIMENSION{ public: enum{ DIM = RANK };}; template<int RANK> class DIMENSION<A, RANK>{ public: enum { DIM = RANK + 1};};Kann mir einer verraten, was ich falsch mache?
mfg
MamboKurt
-
Was sind TYPE und RANK in deinem Beispiel? Defines? Typedefs? Template-Typen?
-
RANK ist einfach ein int und TYPE ist ein Rootsystemtype:
enum RootSystemType {A, B, C, D};
-
MamboKurt schrieb:
RANK ist einfach ein int und TYPE ist ein Rootsystemtype:
enum RootSystemType {A, B, C, D};Ja, aber steht in deinem Programm int RANK = 5; oder #define RANK 5 oder was (und das gleiche mit TYPE)
Bevor ich lang herumrede: Probier mal, typename davor zu schreiben.
-
Danke!
Hat soweit geklappt mit typename. Wenn man sich die Erklärung dafür mal durchliest klingt das auch logisch
mfg
MamboKurt