Шаблонная специализация для перечисления

Просто нажмите на перспективу «Отладка» (должна быть на правой верхней панели), выберите экземпляр веб-приложения на панели «Отладка» (если вы его не показываете, вы можете включить его в меню «Окно» -> «Показать представление» -> «Отладка») и нажмите на красную рамку меню просмотра.

8
задан nilton 25 October 2009 в 04:23
поделиться

2 ответа

Вы можете использовать std :: enable_if с std :: is_enum из для достижения этой цели.

В ответе на один из моих вопросов , litb опубликовал очень подробное и хорошо написанное объяснение того, как это можно сделать с помощью эквивалентов Boost.

21
ответ дан 5 December 2019 в 05:45
поделиться

Я не уверен, правильно ли я понял ваш вопрос, но вы можете создать экземпляр шаблона в определенных перечислениях:

template <typename T>
void f(T value);

enum cars { ford, volvo, saab, subaru, toyota };
enum colors { red, black, green, blue };

template <>
void f<cars>(cars) { }

template <>
void f<colors>(colors) { }

int main() {
    f(ford);
    f(red);
}
7
ответ дан 5 December 2019 в 05:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: