В современном STL есть std::is_base_of
. Это позволяет нам определить, является ли второй параметр производным от первого параметра или если они являются одними и теми же классами, либо в противном случае, чтобы определить, нет ли такого отношения между ними.
Можно ли определить, является ли один класс производным от какого-либо конкретного класса шаблона, без различия конкретных конкретных параметров, связанных с его специализацией?
Скажем, мы имеем:
template< typename ...types >
struct B {};
и
template< typename ...types >
struct D : B< types... > {};
Можно ли определить черту типа:
template< typename T > is_derived_from_B;
Так, что он получен из std::true_type
, когда T
- любая специализация D
и получена из std::false_type
, если T
не получена из какой-либо специализации B
?