我想确定是否有任何可变类模板是另一个类的基础。通常我会使用std :: is_base_of,但我不认为我的用例适合,而且我不确定是否已经有某些东西在std或boost中来处理这个问题。我希望可变基类模板的参数包来自另一个可变类模板。下面是一些例子代码,希望能解释什么,我想做的事:提取可变参数模板参数包并在类型traits元函数的另一个可变参数模板中使用它?
用法:
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>
{};
这可能吗?
不知道它改变什么,但我做了一个小编辑到'VarTemplClassB',现在它的只是'VarTemplClassB'。 –
2011-05-20 20:47:24
@Johannes:嘘,几秒钟! :( – Xeo 2011-05-20 20:48:00
Lol,不知道我尝试过多少种排列组合,没有登陆这个排行榜,效果非常好,谢谢! – 2011-05-20 20:51:18