Шаблон:Interface id body

Материал из CAMaaS preliminary wiki
Версия от 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> {};
//...