On the one hand there is the rule [temp.res]/8.3 which states that if every valid specialization of a variadic template requires an empty template parameter pack the program is ill-formed and no diagnostic is required. On the other hand one can imagine the situation when one can explicit instantiate any desired specialization of the template but cannot call it [temp.mem]/5.note-1, e.g.:
struct foo {
template <class... Ts>
foo() { }
};
template
foo::foo<int, float, double>();
Is the code well-formed or the fact one cannot call any valid specialization apart from the one with empty template parameter pack violates the [temp.res]/8.3 rule?