Страницы

Поиск по вопросам

четверг, 18 октября 2018 г.

Как задать ограничения на параметры шаблонных классов?

Есть абстрактный класс M и классы A, B и C, для которых М - родительский класс, и в них реализованы все абстрактные методы класса М Нужно создать шаблонный класс
template class S{ ... };
в котором качестве шаблона используются классы A, B или C. Можно как-то указать, что M должен быть родительским классом для Т?


Ответ

Вас спасет std::is_base_of
struct M {};
struct A: public M {};
struct B {};
template::value>> struct S {};
int main(int argc, const char * argv[]) { S a; S b; }

Комментариев нет:

Отправить комментарий