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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{function_begin|MemBufInputByteStreamOwn& operator{{=}}(MemBufInputByteStreamOwn&& right); //1 template <class RightAdapterType> MemBufInputByteStreamOwn& operat…»)
 
 
Строка 11: Строка 11:
{{function_paramlist add|right|Адаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру [[MemBufInputByteStreamOwn]], как если бы был выполнен вызов <source lang="cpp" inline>right.release_ownership()</source>.}}
{{function_paramlist add|right|Адаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру [[MemBufInputByteStreamOwn]], как если бы был выполнен вызов <source lang="cpp" inline>right.release_ownership()</source>.}}
{{function_paramlist end}}
{{function_paramlist end}}
{{function_return_value|Ссылка на <source lang="cpp" inline>*this</source>.}}
{{function_end}}
{{function_end}}

Текущая версия на 22:07, 11 августа 2019

MemBufInputByteStreamOwn& operator=(MemBufInputByteStreamOwn&& right); //1
template <class RightAdapterType>
MemBufInputByteStreamOwn& operator=(RightAdapterType&& right); //2

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

  1. Оператор присваивания с перемещением, который переносит владение реализацией потока адаптеру this. Присваивание адаптеру разрешено, только если он не был до этого проинициализирован действительным адресом реализации потока или был сброшен с помощью MemBufInputByteStreamOwn::release_ownership или MemBufInputByteStreamOwn::reset_ownership без параметров. В противном случае генерируются исключения - Chusov::Exceptions::UnsupportedCallException, если right не содержит реализации IMemBufInputByteStream, и Chusov::Exceptions::InvalidParameterException - в противном случае.
  2. Аналогично, но с приведением типа указателя на реализацию с typename std::remove_reference_t<RightAdapterType>::interface_type* к типу IMemBufInputByteStream*. Данная перегрузка участвует в процедуре разрешения перегрузок, только если RightAdapterType&& является rvalue-ссылкой, тип std::decay_t<RightAdapterType> является адаптером с владением с подтипом interface_type, указатель на который неявно приводим к IMemBufInputByteStream*.
Параметры шаблона
RightAdapterTypeТип адаптера с владением реализацией интерфейса IMemBufInputByteStream (или неявно приводимого к нему интерфейса), которая передается экземпляру this адаптера перегрузкой 2. Тип std::decay_t<RightAdapterType> должен задавать адаптер с владением через указатель, приводимый к типу IMemBufInputByteStream*.
Параметры
rightАдаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру MemBufInputByteStreamOwn, как если бы был выполнен вызов right.release_ownership().
Возвращаемое значение:
Ссылка на *this.