Re[3]: (баян?) оператор приведения к самому себе
От: elw00d Россия http://elwood.su
Дата: 20.12.09 10:44
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Кстати да, можно и потерять владение временным объектом!

К>Натурный эксперимент показывает, что компилятор со спокойной душой теряет.
К>Т.е. получается const A& ref = A().operator const A&(), дальше мы запоминаем возвращённую ссылку, а временный объект спокойно разрушаем.

Да, я тоже предполагаю, что все так и происходит. Хотя, на мой взгляд, у возвращаемого значения должно работать некое рекурсивное правило — скажем, если мы приводим объект к константной ссылке, его время жизни продлевается. Соответственно, если мы эту константную ссылку вытаскиваем дальше — и запоминаем в другой константной ссылке — то она продлевает время жизни промежуточной ссылки.

К>Отсюда мораль: нестандартное поведение gcc порождает ошибки.


Угу. Осталось только определить, насколько корректно такое поведение с точки зрения Стандарта.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.