aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2019-11-27 17:05:53 -0500
committerJason Merrill <jason@gcc.gnu.org>2019-11-27 17:05:53 -0500
commit1a291106384cabc73da0bc0f457b1cd3a4015970 (patch)
tree3f4b4913ffbd60d6a8230235c945963f61958534 /gcc/tree-inline.c
parent1f41df916c2d6d7598cb5e67cdaebdc86910e902 (diff)
downloadgcc-1a291106384cabc73da0bc0f457b1cd3a4015970.zip
gcc-1a291106384cabc73da0bc0f457b1cd3a4015970.tar.gz
gcc-1a291106384cabc73da0bc0f457b1cd3a4015970.tar.bz2
Implement P1814R0, CTAD for alias templates.
This patch implements C++20 class template argument deduction for alias templates, which works by a moderately arcane transformation of the deduction guides for the underlying class template. When implementing it, it seemed that I could simplify the rules in the draft a bit and get essentially the same effect; I'll be emailing the committee to that effect soon. gcc/cp/ * pt.c (rewrite_tparm_list): Factor out of build_deduction_guide. (maybe_aggr_guide): Check for copy-init here. (alias_ctad_tweaks, deduction_guides_for): New. (ctor_deduction_guides_for): Factor out of do_class_deduction. (ctad_template_p): New. * parser.c (cp_parser_simple_type_specifier): Use it. * constraint.cc (append_constraint): New. gcc/c-family/ * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_deduction_guides. From-SVN: r278786
Diffstat (limited to 'gcc/tree-inline.c')
0 files changed, 0 insertions, 0 deletions