shared_interface_ptr::operator=

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
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.

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

Все операторы присваивания атомарны.