... must be a non-static member funcion
-
Hallo,
ich arbeite gerade an einem Vektor-Klassen-Template. Ich möchte den Zuweisungsoperator global definieren. Der sieht so aus:
template <unsigned int N1, typename T1, unsigned int N2, typename T2> inline Vec<N1, T1>& operator=(Vec<N1, T1>&v, const typename Vec<N2, T2>::template PointerContainer<N1, T2>& pC) { return v; }Er macht noch garnichts, ist also nur ein Syntaxcheck.
Jetzt bekomme ich aber folgendes vom Compiler ausgespuckt:/afs/cg.cs.tu-bs.de/home/pohl/Documents/Neon/src/neon/core/vec.h:557: error: ‘Vec<N, T>& operator=(Vec<N, T>&, const typename Vec<N2, T2>::PointerContainer<N1, T2>&)’ must be a nonstatic member function
Aber die Funktion übernimmt doch zwei Parameter?!
Danke!
-
Man kann den Compiler eigentlich nur wiederholen: operator= muss einen nicht-statische Memberfunktion sein. Freie Funktion ist für operator= nicht zulässig.
-
Ach, den MUSS man als Memberfunktion deklarieren. Na denn, hat sich das ja schnell geregelt, danke :).
-
Nicht nur deklarieren auch definieren muss man den als Memberfunktion.
-
Ups, verschrieben
