Информация об изменениях

Сообщение Re[4]: Современные компиляторы и NRVO от 01.03.2024 17:25

Изменено 01.03.2024 17:26 rg45

Re[4]: Современные компиляторы и NRVO
Здравствуйте, reversecode, Вы писали:

R>https://en.cppreference.com/w/cpp/language/copy_elision

R>

R>This variant of copy elision is known as NRVO, "named return value optimization." In the initialization of an object, when the source object is .


Угу, и называется это non-mandatory copy/move elision. Ты заголовок-то прочитай, на который ссылку даешь.

Ты понимаешь смысл слов "non-mandatory" и "optimization". Если не понимаешь, то я поясню — это означает, что компилятор может выполнить эту ОПТИМИЗАЦИЮ, а может не выполнить — по своему усмотрению. Поэтому и доступность move семантики для NRVO является обязательной. В отличие от mandatory copy/move elision, которая позволяет возвращать по значению объекты non-copyable and non-moveable классов.
Re[4]: Современные компиляторы и NRVO
Здравствуйте, reversecode, Вы писали:

R>https://en.cppreference.com/w/cpp/language/copy_elision

R>

R>This variant of copy elision is known as NRVO, "named return value optimization." In the initialization of an object, when the source object is .


Угу, и называется это non-mandatory copy/move elision. Ты заголовок-то прочитай, на который ссылку даешь.

Ты понимаешь смысл слов "non-mandatory" и "optimization"? Если не понимаешь, то я поясню — это означает, что компилятор может выполнить эту ОПТИМИЗАЦИЮ, а может не выполнить — по своему усмотрению. Поэтому и доступность move семантики для NRVO является обязательной. В отличие от mandatory copy/move elision, которая позволяет возвращать по значению объекты non-copyable and non-moveable классов.