Warum ruft dieser C ++ 0x-Code den Verschiebungskonstruktor nicht auf?
Aus irgendeinem Grund wird der folgende Code nie aufgerufenEvent::Event(Event&& e)
<code>Event a; Event b; Event temp; temp = move(a); a = move(b); b = move(temp); </code>
warum nicht?
Verwendenstd::swap
nennt es einmal.
<code>class Event { public: Event(): myTime(0.0), myNode(NULL) {} Event(fpreal t, Node* n); Event(Event&& other); Event(Event const& other) = delete; ~Event(); bool operator<(Event const& other) const { return myTime < other.myTime; } bool operator>(Event const& other) const { return myTime > other.myTime; } fpreal getTime() const { return myTime; } void setTime(fpreal time) { myTime = time; } Node* getNode() const { return myNode; } private: fpreal myTime; Node* myNode; }; </code>