Я хочу определить, является ли какой-либо шаблон вариативного класса базой для другого класса. Обычно я бы использовал std :: is_base_of, но я не думаю, что мой вариант использования подходит, и я не уверен, что в std или boost уже есть что-то, чтобы справиться с этим. Я хочу, чтобы пакет параметров шаблона вариативного базового класса происходил из другого шаблона вариативного класса. Вот пример кода, который, надеюсь, объясняет, что я хочу сделать:
Использование:
is_variadic_base_of<
VarClassTemplA
, ClassDerivedFromA
, VarClassTemplB //Has param pack I want to use with ClassA
>::value;
Кишки:
//test for variadic base of non-variadic
template <template<typename...> class A, typename B, typename... ArgsC>
struct is_variadic_base_of
: std::is_base_of<A<ArgsC...>, B>
{};
Возможно ли это?