Шаблон:Interface id body

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