我想確定是否有任何可變類模板是另一個類的基礎。通常我會使用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