Предположим, у меня есть два boost::shared_ptr
«S, указывающие на двух различных объектов class A
:Совместное владение повышение :: shared_ptr после строительства
boost::shared_ptr<A> x = boost::make_shared<A>();
boost::shared_ptr<A> y = boost::make_shared<A>();
В какой-то момент, мне нужно x
отказаться от права собственности на объект он, владеющее и долевое владение объектом y
с y
. Как это может быть достигнуто (обратите внимание, что оба shared_ptr создаются в этой точке, поэтому нет возможности использовать конструктор копирования)?
Спасибо!
Согласно документации, оператора присваивания свопы (т.е. не доля) собственности, не так ли? –
@HaithamGad разделяет владение указателем RHS, поэтому 'x' отказывается от права собственности на указатель, с которым он был построен, и владеет долями собственности, управляемой' y'. – juanchopanza
Звучит неплохо, спасибо! –