operator==
-
Ich habe ein struct, dass nur pod's und string member hat. Bei der Verwendung beschwerte sich plötzlich list, dass kein operator== definiert ist und ich war etwas überrascht. Unter welchen Umständen fallen denn die automatisch generierten Operatoren weg?
-
so bald mind. ein member keinen eingebauten op== besitzt.
-
stl++ schrieb:
Ich habe ein struct, dass nur pod's und string member hat. Bei der Verwendung beschwerte sich plötzlich list, dass kein operator== definiert ist und ich war etwas überrascht. Unter welchen Umständen fallen denn die automatisch generierten Operatoren weg?
Dann wenn es kein Konstruktor, Kopierkonstruktor, Destruktor oder Zuweisungsoperator ist
.
-
unskilled schrieb:
so bald mind. ein member keinen eingebauten op== besitzt.
class foo{ int i; }; int main() { foo a,b; a==b; }error: no match for ‘operator==’ in ‘a == b’
-
*grml*
jz hat mich der fragesteller mit seinem automatisch generiert auch noch aufs glatteis geführt -.-'
-
SeppJ schrieb:
stl++ schrieb:
Ich habe ein struct, dass nur pod's und string member hat. Bei der Verwendung beschwerte sich plötzlich list, dass kein operator== definiert ist und ich war etwas überrascht. Unter welchen Umständen fallen denn die automatisch generierten Operatoren weg?
Dann wenn es kein Konstruktor, Kopierkonstruktor, Destruktor oder Zuweisungsoperator ist
.Mhmm achso ... ich hatte in Erinnerung, dass ohne selbstdefinierten operator== immer Member für Member verglichen wird. Danke für die schnelle Antwort.
-
stl++ schrieb:
Ich habe ein struct, dass nur pod's und string member hat. Bei der Verwendung beschwerte sich plötzlich list, dass kein operator== definiert ist und ich war etwas überrascht. Unter welchen Umständen fallen denn die automatisch generierten Operatoren weg?
Irgendwie hat Deine Frage nichts mit dem zutun, was Du vorher geschrieben hast. Der einzige Operator, der ggf automatisch generiert wird ist operator= und nicht operator==.