Есть ли способ проверить std::is_base_of<A, B>
, когда A
является классом шаблона?
template <typename X, typename Y> class A {};
template <typename X> class B : public A<X, char> {};
Я хочу статически тестировать что-то вроде std::is_base_of<A, B<int>>
, значение B
выводится из любой специализации A
.
(Чтобы сделать его более общим, скажем, мы не знаем, как B
специализируется на A
, т.е. B <X> выводит из A < X, char > )
Один из способов решения - вывести A из класса (не шаблон), скажем C
, а затем проверить std::is_base_of<C, B<int>>
. Но есть ли другой способ сделать это?