Результаты поиска по запросу "return-value-optimization"

1 ответ

Я целенаправленно использовал терминологию ОП в своем ответе. Стандарт стремится быть точным, но это паршивый учебник. Я не (и до сих пор не понимаю), что я был расплывчатым. Это, конечно, распространенная ошибка, от которой я не застрахован. Я с удовольствием уточню, знаю ли я, какие части моего ответа были неоднозначными. Моя цель - распространять знания, а не сбивать их с толку.

тим, у нас есть следующий код: std::vector<int> f() { std::vector<int> y; ... return y; } std::vector<int> x = ... x = f();Кажется, у компилятора есть два подхода: (a) NRVO: уничтожить x, затем построить f () вместо x. (b) Перемещение: ...

4 ответа

Когда должен быть RVO?

1 ответ

Может ли компилятор C ++ выполнить RVO для const возвращаемого значения?

Допустим, у меня есть функция #include <string> std::string const foo() { std::string s = "bar"; return s; } int main() { std::string t = foo(); }Может ли компилятор выполнить (именованную) оптимизацию возвращаемого значения дляtхотя типыs а ...

ТОП публикаций

3 ответа

Как отключить оптимизацию возвращаемого значения в Visual Studio 2010?

Можно ли отключить RVO (оптимизацию возвращаемого значения) в Visual Studio 2010? Установка флага оптимизации на/Od (отключает все оптимизации) не помогает. В g ++ существует флаг-fno-elide-constructors который отключает RVO.

4 ответа

Когда должен быть RVO?

Из следующего кода: если произошел RVO, я ожидаю увидеть 2 адреса, указывающие на одно и то же местоположение, однако это не так (мой компилятор - MS VC9.0) #include <iostream> #include <string> std::string foo(std::string& s) { std::cout << ...

3 ответа

Является ли RVO (оптимизация возвращаемого значения) для неназванных объектов универсально гарантированным поведением?

Этот вопрос [https://stackoverflow.com/questions/7596183/is-rvo-return-value-optimization-guaranteed-for-all-objects-in-gcc-compilers] находится в другом аспекте (также ограничен gcc). Мой вопрос предназначен только длябезымянные объекты. ...

4 ответа

C ++ метод get - возврат по значению или по ссылке

У меня очень простой вопрос, но, к сожалению, я не могу сам найти ответ.Предположим, у меня есть некоторая структура данных, которая содержит настройки и дей...

3 ответа

@ildjarn Не с моими компиляторами, это не так. Семантика перемещения недоступна в большинстве компиляторов, а те, которые я использую, не используют их в стандартной библиотеке, даже если они доступны.

у заполнить std :: vector (или какой-нибудь другой контейнер STL): class Foo { public: Foo(int _n, const Bar &_m); private: std::vector<Foo> fooes_; }1. Хорошо выглядящий ctor, высокая производительность std::vector<Foo> get_vector(int _n, ...

3 ответа

Не является ли оптимизация возвращаемого значения (RVO) ошибкой?

3 ответа

и позволить вызывающей стороне обернуть его в потоке?

аю, я пойду прямо в это и начну с кода: #include <iostream> #include <fstream> #include <string> class test : public std::ofstream { public: test(const std::string& filename) { this->open(gen_filename(filename)); }; test(const test&) = delete; ...