OutputStreamOwn::operator=: различия между версиями
Перейти к навигации
Перейти к поиску
Параметры шаблона
Параметры
Возвращаемое значение: Ссылка на
(Новая страница: «{{function_begin|OutputStreamOwn& operator{{=}}(OutputStreamOwn&& right); //1 template <class RightAdapterType> OutputStreamOwn& operator{{=}}(RightAdapterType&&…») |
|||
Строка 11: | Строка 11: | ||
{{function_paramlist add|right|Адаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру [[OutputStreamOwn]], как если бы был выполнен вызов <source lang="cpp" inline>right.release_ownership()</source>.}} | {{function_paramlist add|right|Адаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру [[OutputStreamOwn]], как если бы был выполнен вызов <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:06, 11 августа 2019
OutputStreamOwn& operator=(OutputStreamOwn&& right); //1
template <class RightAdapterType>
OutputStreamOwn& operator=(RightAdapterType&& right); //2
Операторы присваивания адаптера с владением.
- Оператор присваивания с перемещением, который переносит владение реализацией потока адаптеру this. Присваивание адаптеру разрешено, только если он не был до этого проинициализирован действительным адресом реализации потока или был сброшен с помощью OutputStreamOwn::release_ownership или OutputStreamOwn::reset_ownership без параметров. В противном случае генерируются исключения - Chusov::Exceptions::UnsupportedCallException, если right не содержит реализации IOutputStream, и Chusov::Exceptions::InvalidParameterException - в противном случае.
- Аналогично, но с приведением типа указателя на реализацию с
typename std::remove_reference_t<RightAdapterType>::interface_type*
к типуIOutputStream*
. Данная перегрузка участвует в процедуре разрешения перегрузок, только еслиRightAdapterType&&
является rvalue-ссылкой, типstd::decay_t<RightAdapterType>
является адаптером с владением с подтипом interface_type, указатель на который неявно приводим кIOutputStream*
.
RightAdapterType | Тип адаптера с владением реализацией интерфейса IOutputStream (или неявно приводимого к нему интерфейса), которая передается экземпляру this адаптера перегрузкой 2. Тип std::decay_t<RightAdapterType> должен задавать адаптер с владением через указатель, приводимый к типу IOutputStream* . |
right | Адаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру OutputStreamOwn, как если бы был выполнен вызов right.release_ownership() . |
*this
.