T(blah, blah); или return std::move(T(blah, blah))?
Неправильно
А как правильно?
А хрен знает че те надо...
Я извращенец, простите...
Правильно скорее всего тут возвращать по значению
Два копирования. Класса
Нет это не так.
Читать вот тут https://en.cppreference.com/w/cpp/language/copy_elision
Круто. Но становится тяжело понимать, когда элизия есть, а когда надо std::move. Нет каких-либо вариантов проверить, происходит копирование или нет?
просто запомни, что делать return std::move(obj); нельзя. этим ты блокируешь элизию
Там ещё несколько других вариантов. std::vector<T> i = std::vector<T>(3);
Обсуждают сегодня