Почему этот код C ++ 0x не вызывает конструктор перемещения?
По какой-то причине следующий код никогда не вызываетEvent::Event(Event&& e)
<code>Event a; Event b; Event temp; temp = move(a); a = move(b); b = move(temp); </code>
почему бы и нет?
С помощьюstd::swap
называет это один раз.
<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>