https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125268
--- Comment #1 from Miro Palmu <email at miropalmu dot cc> --- Corollary, if `sequence` is replaced with std::index_sequence this can lead to bogus errors about ambiguous function calls if triggered inside a explicit instantiation (https://godbolt.org/z/8Wr1YjE3z): ``` #include <utility> template <typename T> struct holder { T t; }; template <auto n> using should_be_int = decltype( []<std::size_t... I>(std::index_sequence<I...>) { return 42; }(std::make_index_sequence<n>())); template <auto m> struct Foo{ template <should_be_int<m>...> auto foo(){ return 0; } template <holder<should_be_int<m>>> auto foo(){ return 1; } }; // This leads to ambiguous call. template <typename> struct Bar{ void bar(){ Foo<0>{}.foo<0>(); } }; template struct Bar<int>; // This leads to ICE // int main() { // Foo<0>{}.foo<0>(); // } ```
