operator << macht mich fertig
-
Hallo,
ich sitze grade verzweifelt hier und versuche den operator << für meine Klasse zu überladen.Meine Klasse sieht in etwa so aus:
//CurseStream.h class CurseStream { public: CurseStream(int x=0, int y=0) //... }; template <typename T> CurseStream & operator << (CurseStream &stream, T& value); //CurseStream.cpp template <typename T> CurseStream & operator << (CurseStream &stream, T& value) { ostringstream sstr; sstr << value; stream.Write(Line, sstr.c_str()); return stream; }
Benutzen möchte ich den Stream dann wie folgt:
CurseStream CurrentStream; CurrentStream << string("hallo"); CurrentStream << 5;
Allerdings kriege ich folgende Meldung:
gcc schrieb:
menu.cpp:46: no match for `CurseStream& << int' operator
* ncurse_utils.h:30: candidates are: CurseStream& operator<<(CurseStream&, T&) [with T = int]Wie mache ich das also richtig, danke für jede Hilfe!
EDIT:Die Frage wurde bestimmt schon beantwortet, aber man mit dem Forum nicht vernünftig nach << suchen!
-
T& ist eine Referenz auf ein nicht-konstantes Objekt, "5" ist aber konstant -> "const T&".
-
Danke, so einfach kann es manchmal sein und ich sehs trotzdem nicht.