是否可以"分开"提供给类模板到不同列表的类型,以便我可以区别对待它们?我想做的事情如下。
Class<<A, B, C>, <1, 2, 3>> c; // initialization
template <<List1Args...>, <List2Args...>
class Class {
...
// do stuff on the first list of types
template<typename T>
void doStuffWithList1() {
...
}
template<typename First, typename Second, typename ... Rest>
void doStuffWithList1() {
...
doStuffWithList1<Second, Rest...>();
}
// do stuff on the second list of types
template<typename T>
void doStuffWithList2() {
...
}
template<typename First, typename Second, typename ... Rest>
void doStuffWithList2() {
...
doStuffWithList2<Second, Rest...>();
}
};
稍微说一下,有什么好的资源/书籍可以让我了解更多关于c ++ 11模板元编程的知识?
答案 0 :(得分:0)
您可以使用std::tuple
和std::integer_sequence
对类型/值进行分组。
template <typename Tuple, typename Sequence> class Class;
template <typename ...Ts, std::size_t ...Is>
class Class<std::tuple<Ts...>, std::index_sequence<Is...>>
{
//...
};