diff options
author | Jason Merrill <jason@redhat.com> | 2020-06-22 15:44:45 -0400 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2020-06-23 17:49:44 -0400 |
commit | 6b161257f9f8c7a26b7d119ebc32cbbc54d2e508 (patch) | |
tree | 7a4ecad39891e6b19eb3978fc96e543c2655e492 /gcc/config.gcc | |
parent | 6f609029c7078fbd29e2f842074e2b99ea099096 (diff) | |
download | gcc-6b161257f9f8c7a26b7d119ebc32cbbc54d2e508.zip gcc-6b161257f9f8c7a26b7d119ebc32cbbc54d2e508.tar.gz gcc-6b161257f9f8c7a26b7d119ebc32cbbc54d2e508.tar.bz2 |
c++: Improve CTAD for aggregates [PR93976]
P2082R1 adjusted the rules for class template argument deduction for an
aggregate to better handle arrays and pack expansions.
gcc/cp/ChangeLog:
PR c++/93976
Implement C++20 P2082R1, Fixing CTAD for aggregates.
* cp-tree.h (TPARMS_PRIMARY_TEMPLATE): Split out from...
(DECL_PRIMARY_TEMPLATE): ...here.
(builtin_guide_p): Declare.
* decl.c (reshape_init_class): Handle bases of a template.
(reshape_init_r): An array with dependent bound takes a single
initializer.
* pt.c (tsubst_default_argument): Shortcut {}.
(unify_pack_expansion): Allow omitted arguments to trailing pack.
(builtin_guide_p): New.
(collect_ctor_idx_types): Give a trailing pack a {} default
argument. Handle arrays better.
gcc/testsuite/ChangeLog:
* g++.dg/cpp2a/class-deduction-aggr3.C: New test.
* g++.dg/cpp2a/class-deduction-aggr4.C: New test.
Diffstat (limited to 'gcc/config.gcc')
0 files changed, 0 insertions, 0 deletions