InputByteStreamRef::InputByteStreamRef: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 
Строка 12: Строка 12:
# Конструктор, инициализирующий адаптер адресом реализации интерфейса, приведенным из адреса, заданного адаптером <tt>right</tt>, к типу [[IInputByteStream]]. Шаблон 5 участвует в перегрузке, если только тип <tt>interface_type</tt> типа параметра существует и задает тип, указатель на который неявно преобразуем в <source lang="cpp" inline>IInputByteStream*</source>.
# Конструктор, инициализирующий адаптер адресом реализации интерфейса, приведенным из адреса, заданного адаптером <tt>right</tt>, к типу [[IInputByteStream]]. Шаблон 5 участвует в перегрузке, если только тип <tt>interface_type</tt> типа параметра существует и задает тип, указатель на который неявно преобразуем в <source lang="cpp" inline>IInputByteStream*</source>.
# Защищенный конструктор по умолчанию, инициализирующий экземпляр адаптера нулевым адресом.}}
# Защищенный конструктор по умолчанию, инициализирующий экземпляр адаптера нулевым адресом.}}
{{function template paramlist begin}}
{{function template paramlist add|AnotherAdapter|Тип адаптера {{param|right}} в конструкторе 5. Значение <source lang="cpp" inline>std::is_convertible_v<typename AnotherAdapter::interface_type*, IInputByteStream*></source> должно быть {{cpp_true}}.}}
{{function template paramlist end}}
{{function_paramlist begin}}
{{function_paramlist begin}}
{{function_paramlist add|right|Адаптер, интерфейсный указатель которого инициализирует создаваемый адаптер.}}
{{function_paramlist add|right|Адаптер, интерфейсный указатель которого инициализирует создаваемый адаптер.}}

Текущая версия на 15:04, 9 августа 2019

InputByteStreamRef(const InputByteStreamRef& right) noexcept; //1
InputByteStreamRef(InputByteStreamRef&& right) noexcept; //2
InputByteStreamRef(IInputByteStream* pStream) noexcept; //3
template <class AnotherAdapter>
InputStreamRef(const AnotherAdapter& right) noexcept; //4
protected:
InputByteStreamRef() noexcept; //5

Конструкторы адаптера.

  1. Конструктор копирования.
  2. Конструктор перемещения.
  3. Конструктор неявного преобразования из указателя на реализацию IInputByteStream в ссылочный адаптер.
  4. Конструктор, инициализирующий адаптер адресом реализации интерфейса, приведенным из адреса, заданного адаптером right, к типу IInputByteStream. Шаблон 5 участвует в перегрузке, если только тип interface_type типа параметра существует и задает тип, указатель на который неявно преобразуем в IInputByteStream*.
  5. Защищенный конструктор по умолчанию, инициализирующий экземпляр адаптера нулевым адресом.
Параметры шаблона
AnotherAdapterТип адаптера right в конструкторе 5. Значение std::is_convertible_v<typename AnotherAdapter::interface_type*, IInputByteStream*> должно быть true.
Параметры
rightАдаптер, интерфейсный указатель которого инициализирует создаваемый адаптер.
[in]pStreamУказатель на реализацию IInputByteStream, которая адаптируется создаваемым экземпляром адаптера InputByteStreamRef.