(03.09.2022)
Онлайн компилятор (показывает ассемблер)
Функции неявно передается указатель куда должен записаться результат выполнения функции, хранится до тех пор, пока не пригодится.
Return value optimization - при передачи r-value выражений копий не делается (обязательна с C++17)
Named return value optimization - будет оптимизированна переменная которая возвращается (не обязательная) (В return можно не делать копию)
Нельзя сделать NRVO когда есть выборность обьектов для return
:
GCC не всегда справляеться с NRVO (если убрать все в ещё одни
{}
то NRVO не будет)