From https://bugzilla.redhat.com/show_bug.cgi?id=1464612 template<typename U> struct X { }; template<typename T, typename U = void> struct set { }; template <typename V, template <typename...> class C> void bar (const X<C<V>>&) { } void foo (X<set<int>>& x) { bar (x); }
Author: jason Date: Mon Jun 26 18:49:18 2017 New Revision: 249664 URL: https://gcc.gnu.org/viewcvs?rev=249664&root=gcc&view=rev Log: PR c++/81215 - deduction failure with variadic TTP. * pt.c (unify_bound_ttp_args): Restore old logic for C++14 and down. Added: trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ttp7.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c
Author: jason Date: Mon Jun 26 18:49:25 2017 New Revision: 249665 URL: https://gcc.gnu.org/viewcvs?rev=249665&root=gcc&view=rev Log: PR c++/81215 * pt.c (unify_bound_ttp_args): Restore old logic for C++14 and down. Added: branches/gcc-7-branch/gcc/testsuite/g++.dg/cpp0x/variadic-ttp7.C Modified: branches/gcc-7-branch/gcc/cp/ChangeLog branches/gcc-7-branch/gcc/cp/pt.c
Fixed.