Список базовых классов для использования с вариационными шаблонами - PullRequest
0 голосов
/ 02 сентября 2011

Есть ли способ получить доступ ко всем базовым классам класса в C ++?Поскольку шаблоны с переменными числами доступны, я думаю, что имеет смысл иметь, например, ___BASE, который является списком с переменными числами всех типов, из которых на самом деле происходит текущий класс.Это также позволило бы проверить, принадлежит ли класс или его базовые классы определенному типу.Это уже возможно, или я что-то здесь упускаю, почему это невозможно!?

1 Ответ

2 голосов
/ 02 сентября 2011

В языке нет общего механизма, который бы рассказывал вам обо всех базовых классах, хотя вы можете добавить подходящий typedef ко всем членам вашей иерархии классов, который сделает эту информацию доступной (например, typedef aкортеж, типы аргументов которого являются предком плюс предки предка) - вы, вероятно, могли бы написать небольшой миксин для этого.

Что касается проверки, является ли что-то основанием другого, это уже является частью стандарта в формечерты типа std::is_base_of.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...