История изменений
Исправление KennyMinigun, (текущая версия) :
т.е. объекту стоило бы уничтожиться после двоеточия.
Всмысле после ;
строчке
S &&r = (S &&) S{};
запустив тест получается, что объект переживает cout,
Ссылка «продлевает» жизнь обьекта в рамках scope.
https://en.cppreference.com/w/cpp/language/lifetime
The lifetime of a temporary object may be extended by binding to a const lvalue reference or to an rvalue reference (since C++11), see reference initialization for details.
Исходная версия KennyMinigun, :
т.е. объекту стоило бы уничтожиться после двоеточия.
Всмысле после ;
строчке
S &&r = (S &&) S{};
запустив тест получается, что объект переживает cout,
Ссылка «продлевает» жизнь обьекта в рамках scope.
https://en.cppreference.com/w/cpp/language/lifetime
The lifetime of a temporary object may be extended by binding to a const lvalue reference or to an rvalue reference (since C++11), see reference initialization for details.