2012-12-27 109 views
3

的類型考慮以下類:扣除嵌套模板可變參數的非類型列表

template<class T, int...> struct MyClass1 {}; 
template<class T, unsigned int...> struct MyClass2 {}; 
template<class T, long long int...> struct MyClass3 {}; 
template<class T, unsigned long long int...> struct MyClass4 {}; 

我不能修改這些類。

是否可以寫一個輔助類或函數或東西,這會返回一個可變的列表類型:

something<MyClass1>::type (-> int) 
something<MyClass2>::type (-> unsigned int) 
something<MyClass3>::type (-> long long int) 
something<MyClass4>::type (-> unsigned long long int) 

size_t如果可變參數列表是空的?

+1

你的意思是什麼variadic列表?如果你通過'MyClassN'還沒有列表。列表只有一個模式,其實例可能是空的或不是。你的意思是「和size_t如果沒有參數包」? –

+0

' :: type'可能會調用另一個類似於'template