LINUX.ORG.RU

История изменений

Исправление pavlick, (текущая версия) :

Я вот чего подумал: cppreference говорят, что жизнь продливается при привязке к сылке «temporary». А что такое эта «temporary»? Какая связь с lvalue и прочими категориями выражений имеется? Раньше я думал, что временный объект это полученный от prvalue, а теперь прогнал такой пример

struct T { ~T() { cout << "destruct\n";} };
int main() {
   const T& r = static_cast<const T&>(T{});
   cout << "---------\n";
}
и вижу, что жизнь продливается, хотя выражения lvalue. Наверное на temporary materialization завязано.

Исправление pavlick, :

Я вот чего подумал: cppreference говорят, что жизнь продливается при привязке к сылке «temporary». А что такое эта «temporary»? Какая связь с lvalue и прочими категориями выражений имеется? Раньше я думал, что временный объект это полученный от prvalue, а теперь прогнал такой пример

struct T { ~T() { cout << "destruct\n";} };
int main() {
   const T& r = static_cast<const T&>(T{});
   cout << "---------\n";
}
и вижу, что жизнь продливается, хотя выражения lvalue.

Исходная версия pavlick, :

Я вот чего подумал: cppreference говорят, что жизнь продливается при привязке к сылке «temporary». А что такое эта «temporary»? Какая связь с lvalue и прочими категориями выражений имеется? Раньше я думал, что временный объект это полученный от prvalue, а теперь прогнал такой пример