weak_ptr
От: PoM-PoM 40mm Россия  
Дата: 11.10.04 01:52
Оценка:
Господа может кто нить объяснить почему weak_ptr имеет такой странный оператор копирования?


weak_ptr & operator=(weak_ptr const & r);
template<class Y> weak_ptr & operator=(weak_ptr<Y> const & r);
template<class Y> weak_ptr & operator=(shared_ptr<Y> const & r);

Effects: Equivalent to weak_ptr(r).swap(*this).


Я думал что подобную семантику имеют указатели типа auto_ptr у которых есть собственность, но нет подсчета ссылок. Но этому то зачем?
Will give me piece of mind
Re: weak_ptr
От: sergey_shandar США http://getboost.codeplex.com/
Дата: 11.10.04 03:12
Оценка:
Здравствуйте, PoM-PoM 40mm, Вы писали:

PP4>Я думал что подобную семантику имеют указатели типа auto_ptr у которых есть собственность, но нет подсчета ссылок. Но этому то зачем?


Видимо по ошибке был создан этот вопрос. В чем странность?

      template<class Y> weak_ptr(shared_ptr<Y> const & r);
      weak_ptr(weak_ptr const & r);
      template<class Y> weak_ptr(weak_ptr<Y> const & r);

...

      weak_ptr & operator=(weak_ptr const & r);
      template<class Y> weak_ptr & operator=(weak_ptr<Y> const & r);
      template<class Y> weak_ptr & operator=(shared_ptr<Y> const & r);


А это weak_ptr(r).swap(*this) тоже не должно смущать, так как swap не с r, а с weak_ptr(r), т.е. с новым временным объектом.
getboost.codeplex.com
citylizard.codeplex.com
Re[2]: weak_ptr
От: PoM-PoM 40mm Россия  
Дата: 11.10.04 03:20
Оценка:
_>А это weak_ptr(r).swap(*this) тоже не должно смущать, так как swap не с r, а с weak_ptr(r), т.е. с новым временным объектом.

ясно
Will give me piece of mind
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.