Czy jest jakaś korzyść z jednoczesnego używania std::vector::emplace_back
i std::move
? lub jest to po prostu zbędne, ponieważ std::vector::emplace_back
wykona in situ-construction?std :: wektor :: emplace_back i std :: move
Obudowy dla wyjaśnienia:
std::vector<std::string> bar;
pierwsze:
bar.emplace_back(std::move(std::string("some_string")));
drugie:
std::string str("some_string");
bar.emplace_back(std::move(str));
trzecie:
bar.emplace_back(std::move("some_string"));
Trzeci ruch, przynajmniej, jest bez sensu. Ten łańcuch literowy jest const, więc nie można go przenieść. –