Я нашел идею Бена Фойгта очень полезной в моих собственных начинаниях.Я немного изменил его, чтобы сделать его общим, а не просто кортежами.Для читателей здесь это может быть очевидной модификацией, но, возможно, стоит показать:
template <template <class ... Args> class T, class ... Args>
struct TypeWithList
{
typedef T<Args...> type;
};
template <template <class ... Args> class T, class ... Args>
struct TypeWithList<T, VariadicTypedef<Args...>>
{
typedef typename TypeWithList<T, Args...>::type type;
};
Имя TypeWithList связано с тем фактом, что тип теперь создается с помощью предыдущего списка.