Шаблон:Interface id body
Версия от 21:54, 24 декабря 2017; Андрей Чусов (обсуждение | вклад) (Новая страница: «<source lang="cpp"> template <class I> struct interface_id {}; </source> {{class template paramlist begin}} {{class template paramlist add|I|Тип Програ…»)
template <class I> struct interface_id {};
I | Тип программного интерфейса, над которым вызывается метафункция interface_id. |
Общая реализация шаблона не содержит членов. Однако этот шаблон специализируется для типов интерфейсов, поддерживающих преобразование типов.
Такая специализация поддерживает следующие элементы.
Открытые типы
Тип | Описание |
---|---|
type | Определен как тип идентификатора интерфейса I. |
Открытые постоянные
Тип | Значение | Описание |
---|---|---|
value | не задано | Значение идентификатора интерфейса I. |
Пример
template <> struct interface_id<IDataStorage> :std::integral_constant<DataStorageTypeId, DataStorageType> {};
template <> struct interface_id<IConsequentDataStorageInput> :std::integral_constant<DataStorageTypeId, ConsequentDataStorageInputType> {};
template <> struct interface_id<IArbitrarilyAccessedDataStorageInput> :std::integral_constant<DataStorageTypeId, ArbitrarilyAccessedDataStorageInputType> {};
//...