operator !=-Demenz?
Verfasst: Fr Jul 27, 2012 2:51 pm
Ich habe bei mir mal in den Quellen einiges umgestellt, aber an einer Ecke hakt es nun doch ganz gut...
Er meckert in Zeile 173 an, dass er "area != iconArea" nicht vergleichen kann. area und auch iconArea sind vom Typ XSD::Unit::Area.
Allerdings ist in area.h der Operator definiert und zwar im globalen Namensraum:
Der Code wird auch eingelesen. Das gilt spätestens seitdem ich die Definition nochmal in die meckernde Datei geschrieben habe. Ihr seht ja oben, dass der operator != für XSD::Unit::Area doppelt definiert ist. Warum findet er dann den passenden Operator nicht? Area ist von nichts abgeleitet und hat mit XSD::Unit::Course nichts zu tun.
Er meckert in Zeile 173 an, dass er "area != iconArea" nicht vergleichen kann. area und auch iconArea sind vom Typ XSD::Unit::Area.
Code: Alles auswählen
g++ | dimvalue (de/xsd/block/element).....
../../../../de/xsd/block/element/dimvalue.cpp: In Funktion »bool operator!=(const XSD::Unit::Area&, const XSD::Unit::Area&)«:
../../../../de/xsd/block/element/dimvalue.cpp:10:6: Fehler: Redefinition von »bool operator!=(const XSD::Unit::Area&, const XSD::Unit::Area&)«
../../../../de/xsd/unit/area.h:140:13: Fehler: »bool operator!=(const XSD::Unit::Area&, const XSD::Unit::Area&)« wurde vorher hier definiert
../../../../de/xsd/block/element/dimvalue.cpp: In Elementfunktion »virtual void XSD::Block::Element::DimValue::Refresh(unsigned int)«:
../../../../de/xsd/block/element/dimvalue.cpp:173:15: Fehler: keine Übereinstimmung für »operator!=« in »area != iconArea«
../../../../de/xsd/block/element/dimvalue.cpp:173:15: Anmerkung: Kandidat ist:
../../../../de/xsd/unit/course.h:96:13: Anmerkung: bool XSD::Unit::operator!=(XSD::Unit::Course, XSD::Unit::Course)
../../../../de/xsd/unit/course.h:96:13: Anmerkung: keine bekannte Umwandlung für Argument 1 von »XSD::Unit::Area« nach »XSD::Unit::Course«
Code: Alles auswählen
inline bool operator != ( XSD::Unit::Area const & lhs, XSD::Unit::Area const & rhs )
{ return lhs.Width != rhs.Width || lhs.Height != rhs.Height; }