Семантика перемещения - наиболее важная особенность С++11. В основе семантики перемещения лежит отличие rvalue от lvalue.
В таблице представлено чем является объект, в зависимости от заданного вопроса.
void foo(Object o); // Параметр функции передаётся по значению
Object obj; // o - объект класса Object
foo(obj); // o - копия объекта, созданная копирующим
// конструктором
foo(std::move(obj)); // o - копия объекта, созданная перемещающим
// конструктором