Weak interface ptr::operator=: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{DISPLAYTITLE:weak_interface_ptr::operator{{=}}}} {{function_begin |template <class Y> weak_interface_ptr& operator{{=}}(const weak_interface_ptr<Y>& right) noex…»)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 13: Строка 13:
{{function template paramlist end}}
{{function template paramlist end}}
{{function_paramlist begin}}
{{function_paramlist begin}}
{{function_paramlist add|right|Присваиваемый объект.|paramdir=[in]}}
{{function_paramlist add|right|Присваиваемый объект.}}
{{function_paramlist end}}
{{function_paramlist end}}
{{function return_value|Ссылка на <source lang="cpp" inline>*this</source>.}}
{{function return_value|Ссылка на <source lang="cpp" inline>*this</source>.}}
{{function_end}}
{{function_end}}
Все операторы присваивания атомарны.

Текущая версия на 20:26, 2 января 2018

template <class Y>
weak_interface_ptr& operator=(const weak_interface_ptr<Y>& right) noexcept; //1
template <class Y>
weak_interface_ptr& operator=(weak_interface_ptr<Y>&& right) noexcept; //2
template <class Y>
weak_interface_ptr& operator=(const shared_interface_ptr<Y>& right) noexcept; //3

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

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

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