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>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage