Interface implementation base::convert

Материал из CAMaaS preliminary wiki
Версия от 19:21, 7 декабря 2017; Андрей Чусов (обсуждение | вклад) (Новая страница: «{{function_begin |constexpr const void* convert(typename interface_conversion_policy::interface_identifier_type id) const; //1 void* convert(typename interface_co…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску
constexpr const void* convert(typename interface_conversion_policy::interface_identifier_type id) const; //1
void* convert(typename interface_conversion_policy::interface_identifier_type id); //2

Условно определенный метод, который возвращает указатель на реализацию объекта interface_implementation_base как на программный интерфейс, заданный идентификатором интерфейса.

  1. Преобразрование объекта с доступом только на чтение.
  2. Преобразрование изменяемого объекта.
Параметры
idИдентификатор интерфейса, к указателю на который осуществляется преобразование.
Возвращаемое значение:
Указатель типа void, на реализацию интерфейса, который задан идентификатором id. Если интерфейс, соответствующий значению идентификатора id не поддерживается, возвращается nullptr.

Метод определен только, если политикой interface_conversion_policy, которая специализирует C++ шаблон interface_implementation_base, поддерживается такое преобразование.

Метод не приводит к инкременту счетчика ссылок, даже если его использование задано политикой interface_conversion_policy.