https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110809
--- Comment #5 from Ed Catmur <ed at catmur dot uk> --- The original code is valid. A reduced valid case would be: ``` template <double> struct S {}; template <typename Hash, int i> struct bucket {}; template <typename Hash, int i> int find_indices_impl(bucket<Hash, i> const &); struct HashTable : bucket<S<1.>, 1>, bucket<S<2.>, 2> {}; auto t = find_indices_impl<S<1.>>(HashTable{}); ```