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