我想确定任何可变参数类模板是否是另一个类的基础。通常我会使用 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>
{};
这可能吗?