Вопросы по теме 'nrvo'

Добавлена ​​ли новая оптимизация возвращаемого значения переменной?
Мы все это знаем Foo returnAFoo() { return Foo(); } будет скомпилирован с оптимизацией возвращаемого значения, поэтому копия значения не будет сделана, даже если конструктор копирования Foo имеет побочные эффекты. Но будет Foo...
139 просмотров
schedule 12.09.2021

Копируется объект или нет, когда срабатывает RVO/NRVO?
Я не могу понять определение RVO (и NRVO) из-за множества вопросов, подобных этому , которые мне кажутся предполагающими что RVO опускает конструктор копирования. Теперь согласно 12.8.15 В таких случаях реализация рассматривает источник и...
421 просмотров
schedule 25.07.2022

C++: RVO, NRVO и возврат локальных объектов
Я только что прочитал об RVO (оптимизация возвращаемого значения) и NRVO (оптимизация именованного возвращаемого значения). Ниже приведены два примера //Example of RVO Bar Foo() { return Bar(); } //Example of NVRO Bar Foo() { Bar bar;...
571 просмотров
schedule 29.10.2022

Невозможно вернуть элемент unique_ptr из массива по значению
Следующее компилируется и работает как положено: std::unique_ptr<char> input_to_char_array() { std::unique_ptr<char> c; c.reset(new char('b')); // c[1].reset(new char[20]()); return c; } Но это не так:...
156 просмотров
schedule 21.12.2022

Когда на самом деле вызывается конструктор перемещения, если у нас есть (N)RVO?
Из нескольких вопросов здесь, посвященных SO, я понял, что (N)RVO предотвращает вызов конструктора перемещения, когда объект возвращается по значению. Классический пример: struct Foo { Foo() { std::cout << "Constructed\n"; }...
377 просмотров
schedule 15.01.2023