Есть ли преимущества использования std::vector::emplace_back
и std::move
? или он просто лишний, так как std::vector::emplace_back
сделает inplace-construction?std :: vector :: emplace_back и std :: move
Чехлы для осветления:
std::vector<std::string> bar;
Первое:
bar.emplace_back(std::move(std::string("some_string")));
Второе:
std::string str("some_string");
bar.emplace_back(std::move(str));
Третье:
bar.emplace_back(std::move("some_string"));
Третий ход, по крайней мере, бессмыслен. Эта буквальная строка содержит const, поэтому ее нельзя перемещать. –