Re[6]: Конструктор копирования из шаблонного типа
От: jazzer Россия Skype: enerjazzer
Дата: 18.08.09 06:01
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Может быть, может быть, я не смотрел стандарт, времени нету сейчас совсем.

J>Просто суть этой оптимизации в том, чтоб разрешить избавляться от временных объектов там, где они не нужны.
J>Имхо, это как раз такой случай (по крайней мере, я навскидку не вижу принципиальных препятствий), но он вполне может быть и не прописан в стандарте явно.

Посмотрел стандарт.
То, что нечто не прописано явно, большой роли не играет: достаточно сравнить С++03 с его двумя пунктами и С++0х с четырьмя (это без ссылок на значения), так что дописать отсутствующие пункты не проблема.

Но там еще есть очень неприятный запрет:

...when a temporary class object that has not been bound to a reference...

и этот запрет убивает всё: если у нас ссылка (как раз наш случай), то временный объект никогда не будет изничтожен.

Пока что мне этот запрет кажется слишком сильным, поскольку закрывает возможности для таких оптимизаций, мне надо подумать, почему он такой есть (т.е. какой осмысленный код сломается, если этот запрет снять полностью или частично).
Потому что в приведенном примере с конструктором я не вижу проблем.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.