ich grübel hier schon ziemlich lange an einem Problem und komm nicht drauf wieso der Compiler sich so verhält.
Ich habe einmal folgende Klasse geschrieben um mein Problem einfach nachvollziehen zu können:
Code: Alles auswählen
class c {
public:
const QString* getPointer(const int &key) const { return &my[key]; }
const QString* getPointer(const int &key) { return &my[key]; }
private:
QMap<int, QString> my;
};
"taking address of temoprary"
bei der zweiten jedoch nicht.
In meinem Programm hab ich das Problem bisher so umgangen, dass ich die betroffenen Methoden nicht als "const" deklariert habe. Jetzt bin ich aber einem Punkt, an dem sie eigentlich unbedingt const sein sollten, dafür will ich aber nicht immer eine Kopie des Objekts, das in der Map verwaltet wird, erzeugen müssen.
Viele Grüße und herzlichen Dank im Voraus!
Sebastian