template <class T, T... I> struct Seq { static constexpr T PackSize = sizeof...(I); }; template <typename T, T N> using MakeSeq = __make_integer_seq<Seq, T, N>; using SizeT = decltype(sizeof(int)); template <SizeT i, typename ...T> using TypePackElement = __type_pack_element<i, T...>; template <int i> struct X;