Вы знаете классы A и B, таким образом, Вы знаете, подвижны ли они или не и если этот дизайн в конечном счете необходим. Для чего-то как std::string
, это - пустая трата времени, изменяющая существующий код, если Вы не знаете, что у Вас есть проблема производительности здесь. Если Вы имеете дело с auto_ptr
, то пора сорвать его и использование unique_ptr
.
Это обычно предпочитается теперь для взятия аргументов значением , если Вы не знаете ничего более определенного - такой как
void set_a(A a) { _a = std::move(a); }
Это разрешает использование любого из конструкторов A
лет, не требуя ничего кроме подвижности и предлагает относительно интуитивный интерфейс.