Class template argument deduction refinements
authorJason Merrill <jason@redhat.com>
Tue, 28 Feb 2017 23:57:09 +0000 (18:57 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 28 Feb 2017 23:57:09 +0000 (18:57 -0500)
commit853ef4e5632df32894b2366096c1ae1ef4ba03df
tree9c3a71f0fc9f1269321ec72fd50dd34bf67987ef
parentad1de65225fc1ac05fe6b05b6198dc50a51e4935
Class template argument deduction refinements

* call.c (joust): Move deduction guide tiebreaker down.
* decl.c (start_decl_1, cp_finish_decl, grokdeclarator): Allow class
deduction with no initializer.
* pt.c (build_deduction_guide): Handle implicit default/copy ctor.
(do_class_deduction): Use that rather than special case.
(do_auto_deduction): Handle null initializer.

From-SVN: r245796
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/decl.c
gcc/cp/pt.c
gcc/testsuite/g++.dg/cpp1z/class-deduction17.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1z/class-deduction25.C
gcc/testsuite/g++.dg/cpp1z/class-deduction30.C
gcc/testsuite/g++.dg/cpp1z/class-deduction31.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1z/class-deduction32.C [new file with mode: 0644]
gcc/testsuite/g++.dg/parse/error15.C
gcc/testsuite/g++.dg/template/error52.C