Interface implementation base::convert

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
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.