Aber wenn ich die freie Funktion in die Klasse packe, kommt doch der Fehler:
programmversion.h:14: error: `bool programmVersion::operator<(const programmVersion&, const programmVersion&)' must take exactly one argument
Meine Signatur sieht so aus:
Code: Alles auswählen
bool operator< (const programmVersion& lhs, const programmVersion& rhs) const;
Oder habe ich dich jetzt falsch verstanden? Den das habe ich ja schon ausprobiert, wie ich oben geschrieben habe.
Edit: hm, genau das hast du ja geschrieben, dass das nicht funktioniert. Sorry, da hab ich zu schnell geantwortet.
Edit2: Als Memberfunktion mit der Signatur:
kommt immer noch der Fehler:
updater.cpp:20: error: no match for 'operator<' in 'versionItem < actualVersion'
Schreibe ich den Operator als freie Funktion:
Code: Alles auswählen
class programmversion {...};
bool operator < (programmVersion const& lhs, programmVersion const& rhs) const;
kommt der Fehler:
programmversion.h:27: error: non-member function `bool operator<(const programmVersion&, const programmVersion&)' cannot have `const' method qualifier
lösche ich das const kommt der Fehler:
updater.cpp:20: error: no match for 'operator<' in 'versionItem < actualVersion'
Also egal was ich mache, es kommt immer ein Fehler.