链接:https://www.zhihu.com/question/38949490/answer/78918985
template <typename ...Types> struct store {}; template <> struct store<> { using type = std::tuple<>; }; template <typename First> struct store<First> { using first = std::vector<First>; using type = std::tuple<first>; }; template <typename First,typename ...Types> struct store<First,Types...> { using first = std::vector<First>; using type = std::tuple<first,typename store<Types...>::first>; }; int main() { store<>::type; store<int>::type; store<int,double>::type; return 0; }