Поведение std::move с push_back против emplace_back [дубликат]C++

Программы на C++. Форум разработчиков
Anonymous
Поведение std::move с push_back против emplace_back [дубликат]

Сообщение Anonymous »

Предполагая, что следующие фрагменты компилируются и запускаются.
Я не вижу очевидной разницы между этим:
v.push_back(std::move(a))

и это:
v.emplace_back(std::move(a))

Похоже, оба избегают создания копии. Если что, я всегда могу написать:
class A { ... };

void func() {
std::vector v;
A a;
FillA(&a);
v.push_back(std::move(a)) // I don't see any benefit using v.emplace_back(std::move(a))
}


Подробнее здесь: https://stackoverflow.com/questions/782 ... place-back

Вернуться в «C++»