Re[3]: std::unique_ptr. Передача владения.
От: zaufi Земля  
Дата: 13.03.13 15:56
Оценка:
Здравствуйте, zaufi, Вы писали:

Z>Здравствуйте, rumia, Вы писали:


R>>Здравствуйте, Аноним, Вы писали:


А>>>Какой из них более правильный?


R>>http://liveworkspace.org/code/3Mun0g$0

R>>отсюда видно, что при использовании семантики перемещения поведение меняется в зависимости от
R>>содержимого функции. Поэтому я считаю, что первый вариант лучше.

Z>и что показывает данный пример?? а ничего! только лишь что компиляторы нынче несколько умнее человеков...

Z>как видно в примере, все что попадает в эти funcN вообще не используются! this участвующих объектов всегда тот, который был в main: т.е. никакой "передачи владения" в данном _тривиальном_ случае вообще не происходит. даже симуляция каких-то действий с переданным объектом (вызов foo()) не заставляет компилятор генерить бессмысленный код (вызывать move конструкторы), даже на -О0...

кстати, как можно видеть, добавления "симуляции использования" переданного объекта, придает твоему изначальному примеру "ожидаемое" поведение ("p3" таки не печатается)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.