Fehler C2784
-
Ein "Rebuild All" würde auch reichen.
Fehlermeldung macht man in Quotes, wenn überhaupt, niemals in C++-Tags, weil sie dann das Forum verzerren.
Es wäre auch möglich, das was mit der includereihenfolge nicht stimmt, das verursacht manchmal auch seltsame probleme.
-
Hallo,
also imo ist der Fehler recht eindeutig, aber ihr könnte natürlich auch weiter ins blaue raten und an den Projektsettings rumdrehen.
-
hust hust sieht mir sehr nach nem std::list.sort() aus^^
string hat den < operator nich überladen
-
Tatsächlich, ein sort wars, einziges Problem ist, dass ich die Liste wirklich sortiren will, es aber anscheinend nicht kann.
-
unzi schrieb:
Tatsächlich, ein sort wars, einziges Problem ist, dass ich die Liste wirklich sortiren will, es aber anscheinend nicht kann.
Die Memberfunktion sort von list gefällt dir nicht?
-
abhilfe schafft das überladen des kleiner operators für string
bool operator<(std::string a,std::string b){ unsigned int length; if(a.length()>b.length()){ length=b.length(); } else { length=a.length(); } for(unsigned int i=0;i<=length;++i){ if(a[i]>b[i]){ return false; } } return true; }
nicht getestet, aber ich denke, diese aphabetische kleiner sortierung("a" ist kleiner als "b") sollte dir weiterhelfen
-
otze schrieb:
abhilfe schafft das überladen des kleiner operators für string
Aber nicht, wenn du eine std::list mit std::sort bearbeiten willst. Nur weil du den op< überlädst, werden aus bidirektionalen Iteratoren nicht auf einmal random-access Iteratoren.
-
er meinte nich std::sort, er meinte das sort von std::list..oder benutzt std::list std::sort?
-
otze schrieb:
er meinte nich std::sort, er meinte das sort von std::list..oder benutzt std::list std::sort?
Wenn er die Memberfunktion verwenden würde, hätte er kein Problem.
Was bringt es eigentlich den op< für strings zu überladen, wenn es schon einen passenden op< für strings gibt?
-
gibt es doch garnich... aufjedenfall is er nich in der operatorliste enthalten...
-
otze schrieb:
gibt es doch garnich...
Sicher gibt es den. Der C++ Standard beschreibt in Abschnitt 21.3.7.4 eine freie Template-Funktion operator< die zwei Parameter vom Typ const basic_string<charT, traits, Allocator>& erwartet und als Resultat das Ergebnis des Vergleichs der beiden Parameter über die Memberfunktion compare liefert.
aufjedenfall is er nich in der operatorliste enthalten...
Von was für einer Operatorliste sprichst du bitte?