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

Рассмотрим этот фрагмент:

class X;

void MoveAppend(vector<X>& src, vector<X>& dst) {
   dst.reserve(dst.size() + src.size());
   for (const X& x : src) dst.push_back(x);
   src.clear();
}

Если мы предположим, чтоclass X реализует семантику перемещения, как я могу эффективно реализоватьMoveAppend?

Ответы на вопрос(3)

Ваш ответ на вопрос