https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89062
Nikita Lisitsa <lisyarus at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lisyarus at gmail dot com --- Comment #5 from Nikita Lisitsa <lisyarus at gmail dot com> --- Any updates on this? Can confirm this on all gcc versions from 7.1 to 10.2 (see https://godbolt.org/z/4qnfea). Interestingly, for a variadic-template constructor only the first argument triggers the error, i.e. template <typename T> struct A { A(T) {} }; template <typename T> A(T) -> A<T>; template <typename T> struct B { template <typename ... Args> B(Args const & ...){} }; void test() { B<int> b1(A{0}, A{0}, A{0}); // error B<int> b2(A<int>{0}, A{0}, A{0}); // ok }