shared_interface_ptr::operator=
Перейти к навигации
Перейти к поиску
Параметры шаблона
Параметры
Возвращаемое значение: Ссылка на
template<class Y>
shared_interface_ptr& operator=(const shared_interface_ptr<Y>& r) noexcept; //1
template<class Y>
shared_interface_ptr& operator=(shared_interface_ptr<Y>&& r) noexcept; //2
template<class Y>
shared_interface_ptr& operator=(unique_interface_ptr<Y>&& r); //3
Операторы присваивания класса shared_interface_ptr.
- Оператор присваивания, осуществляющий копирование состояния смарт-указателя r с преобразованием типа Y*. После вызова оба смарт-указателя адресуют и разделяют владение одним объектом. Оператор определен, только если определено неявное преобразование Y* в тип _I*, для которого определен
*this
. - Оператор присваивания, осуществляющий перемещение состояния объекта r с преобразованием типа Y* в тип _I*, где
shared_interface_ptr<_I>
- тип объекта*this
. После вызова объект r становится пуст. Оператор определен, только если определено неявное преобразование Y* в тип _I*. - Оператор присваивания, который преобразует смарт-указатель unique_interface_ptr с эксклюзивным владением в создаваемый указатель shared_interface_ptr с разделяемым владением и сбрасывает состояние первого. Оператор определен, только если определено неявное преобразование Y* в тип _I*, где
shared_interface_ptr<_I>
- тип объекта*this
.
Y | Тип интерфейса, с которым ассоциирован присваиваемый объект. |
r | Присваиваемый объект. |
*this
.Все операторы присваивания атомарны.