Fehlermeldung
-
Hallo,
was ist denn bei dieser Fehlermeldung der Unterschied ziwschen dem 1. und dem 2.?1>.\klasse.cpp(166) : error C2679: Binärer Operator '+=': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'int' akzeptiert (oder keine geeignete Konvertierung möglich) 1> .\klasse.cpp(73): kann 'klasse operator +=<int>(klasse &,T &)' sein [bei der Verwendung der argumentbezogenen Suche gefunden] // Nummer 1 1> with 1> [ 1> T=int 1> ] 1> .\klasse.cpp(73): oder "klasse operator +=<int>(klasse &,T &)" [bei argumentbezogenem Lookup gefunden] // Nummer 2 1> with 1> [ 1> T=int 1> ] 1> bei Anpassung der Argumentliste '(klasse, int)'
-
Steht doch da: er hat einmal Argumentbezogene Suche und einmal argumentbezogenes Lookup gemacht, und beidesmal den gleichen op+= gefunden
- was auch immer der genaue Unterschied zwischen den beiden ist...
-
Meine Fresse, ich kapier nicht, warum man nicht einfach C2679 in den MSDN-Index eingeben kann? Meistens steht da eine mögliche Lösung.
-
wie sieht denn der zugehörige code aus?
-
Also ich hatte mal eine ähnlich Fehlermeldung wie diese:
"Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ..."Dabei habe ich ein Template benutzt was nur Typen verträgt die von einer bestimmten Klasse abgeleitet sind. Das war bei meiner Klasse nicht der Fall.
Lösung war meine Klasse einfach von dem verlangten Typ abzuleiten.