The following code fails to compile. #include <utility> template <typename T, typename Seq> struct X; template <typename T> struct X<T, std::make_index_sequence<sizeof(T)>> { }; X<char, std::make_index_sequence<1>> x; // ^^^ // error: implicit instantiation of undefined template // 'X<char, std::integer_sequence<unsigned long, 0>> See https://godbolt.org/z/o8ejrTGKE Replacing make_index_sequence<1> with the equivalent index_sequence<0> in the class template definition works around the issue.