Конструкторы перемещения и множественное наследование

Краткий обзор

Как безопасно спроектировать конструктор перемещения, когда класс использует множественное наследование?

Подробности

Рассмотрим следующий сценарий:

struct T { };
struct U { };

struct X : public T, public U
{
    X(X&& other)
      : T(std::move(other))
     , U(std::move(other)) // already moved?!
    {
    }
};

Есть ли способ безопасно переместить-конструкцию Tи U?

15
задан ildjarn 11 April 2012 в 22:28
поделиться