Tag: return value optimization

Почему исключаемые из NRVO параметры по стоимости?

Представить: S f(S a) { return a; } Почему ему не разрешено использовать псевдоним a и слот возвращаемого значения? S s = f(t); S s = t; // can’t generally transform it to this 🙁 Спецификация не позволяет это преобразование, если конструктор копирования S имеет побочные эффекты. Вместо этого для этого требуется не менее двух […]

Понимание оптимизации возвращаемого значения и возврата временных рядов – C ++

Пожалуйста, рассмотрите три функции. std::string get_a_string() { return “hello”; } std::string get_a_string1() { return std::string(“hello”); } std::string get_a_string2() { std::string str(“hello”); return str; } Будет ли RVO применяться во всех трех случаях? Можно ли вернуть временное значение, как в приведенном выше коде? Я считаю, что это нормально, так как я возвращаю его по стоимости, а […]

c ++ 11 Оптимизация возвращаемого значения или перемещение?

Я не понимаю, когда я должен использовать std::move и когда я должен позволить оптимизировать компилятор … например: using SerialBuffer = vector; // let compiler optimize it SerialBuffer read( size_t size ) const { SerialBuffer buffer( size ); read( begin( buffer ), end( buffer ) ); // Return Value Optimization return buffer; } // explicit move […]

Давайте будем гением компьютера.