https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84796
--- Comment #9 from Patrick Palka <ppalka at gcc dot gnu.org> ---
I suppose one way to make this work is to eagerly expand pack expansions in
member template parameter lists when instantiating a class template.
Consequently we'd now reject the below testcase due to conflicting overloads of
A<int>::f (as we already do if Ts is a non-pack parameter), which seems
desirable?
template<class... Ts>
struct A {
template<int> void f();
template<Ts...> void f();
};
template struct A<int>;