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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{function_begin|StreamRef() {{=}} default; //1
{{function_begin|StreamRef() noexcept; //1
StreamRef(IStream* pStream) noexcept; //2
StreamRef(IStream* pStream) noexcept; //2
StreamRef(const StreamRef& right) noexcept; //3
StreamRef(const StreamRef& right) noexcept; //3
Строка 8: Строка 8:
# Конструктор по умолчанию, инициализирующий экземпляр адаптера нулевым адресом.
# Конструктор по умолчанию, инициализирующий экземпляр адаптера нулевым адресом.
# Конструктор, инициализирующий экземпляр адаптера адресом реализации потока.
# Конструктор, инициализирующий экземпляр адаптера адресом реализации потока.
# Конструктор, выполняющий инициализацию адаптера с копированием адаптируемой реализации интерфейса.
# Конструктор, выполняющий инициализацию адаптера копированием адреса реализации, с которой ассоциирован адаптер, указанный параметрически.
# Конструктор, выполняющий инициализацию адаптера с перемещением адаптируемой реализации интерфейса. Состояние <tt>right</tt> в результате операции не определено.
# Конструктор, выполняющий инициализацию адаптера с перемещением адреса реализации, с которой ассоциирован параметр. Состояние <tt>right</tt> в результате операции не определено.
# Конструктор, инициализирующий адаптер адресом реализации интерфейса, приведенным из адреса, заданного адаптером <tt>right</tt>, к типу [[IStream]]. Шаблон 5 участвует в перегрузке, если только тип <tt>interface_type</tt> типа параметра существует и задает тип, указатель на который неявно преобразуем в [[IStream]].}}
# Конструктор, инициализирующий адаптер адресом реализации интерфейса, приведенным из адреса, заданного адаптером <tt>right</tt>, к типу [[IStream]]. Шаблон 5 участвует в перегрузке, если только тип <tt>interface_type</tt> типа параметра существует и задает тип, указатель на который неявно преобразуем в <source lang="cpp" inline>IStream*</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*, IStream*></source> должно быть {{cpp_true}}.}}
{{function template paramlist end}}
{{function_paramlist begin}}
{{function_paramlist begin}}
{{function_paramlist add|pStream|Указатель на реализацию потока.|paramdir=[in]}}
{{function_paramlist add|pStream|Указатель на реализацию потока.|paramdir=[in]}}

Текущая версия на 13:47, 14 августа 2019

StreamRef() noexcept; //1
StreamRef(IStream* pStream) noexcept; //2
StreamRef(const StreamRef& right) noexcept; //3
StreamRef(StreamRef&& right) noexcept; //4
template <class AnotherAdapter>
StreamRef(const AnotherAdapter& right) noexcept; //5

Конструкторы, определенные требованиями ссылочного адаптера.

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