QPair fehlt operator==!?

Alles rund um die Programmierung mit Qt
Antworten
taraquedo
Beiträge: 36
Registriert: 1. März 2007 13:07

QPair fehlt operator==!?

Beitrag von taraquedo »

Hallo!

Ich blicke es gerade nicht. Warum soll der Operator == fehlen und wozu braucht ihn der Compiler an der Stelle überhaupt? Hier das Beispiel:

Code: Alles auswählen

  QMap<QPair<quint8, quint8>, SomeObject> myMap;
  foreach (SomeObject object, myMap)
    {
      QPair<quint8, quint8> myPair = myMap.key(object);
    }
Es kracht in der Schleife mit folgender Fehlermeldung:
qt-4.5.2/include/QtCore/qmap.h:792: Fehler: no match für »operator==« in »i.QMap<Key, T>::const_iterator::value [with Key = QPair<unsigned char, unsigned char>, T = State]() == avalue«

Was kann ich nun machen?

Grüße!
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Beitrag von Troll.Soft »

Code: Alles auswählen

  QMap<QPair<quint8, quint8>, QString> myMap; 
  foreach (QString object, myMap) 
    { 
      QPair<quint8, quint8> myPair = myMap.key(object); 
    }
hm, mein Compiler zeigt keine Fehler an.
MS VC 2008. Der Code sieht auch grundsätzlich ordentlich aus.

Schau mal in die Doku von QPair und entdecke das es einen == Operator gibt. Die QString Klasse hat so einen Operator. Hat Deine Klasse ihn auch?
Wenn nicht, mußt Du ihn wohl schreiben.

tschüß
Trollsoft
taraquedo
Beiträge: 36
Registriert: 1. März 2007 13:07

Beitrag von taraquedo »

Hi!

Das ist echt seltsam. Die Tatsache, dass bei mir SomeObject nicht von QObject ableitet ist ja eigentlich auch nicht weiter tragisch, oder? Mir sieht es jetzt so aus, als ob QMap dieser Operator für QPair fehlt. Denn er bietet mir auch diverse andere an. Ist übrigens gcc4.3.3 unter Ubuntu.

Habe es jetzt erstmal mit Iteratoren gelöst. Wenn ich einen Iterator einsetze und dann i.key() aufrufe, dann führt es zu keinem Problem.

Grüße!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

QObjects können nicht kopiert werden...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten