In modern C++, does the standard library provide a type list template?
int main() {
using int_types = type_list<int,long,short,char>;
std::cout << length<int_types>::value << ' '
<< typeid(element<2,int_types>::type).name();
}
Note that int_types does not store any values (as std::tuple does). It's merely a list of types.