diff options
author | Patrick Palka <ppalka@redhat.com> | 2022-07-22 18:42:02 -0400 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2022-07-22 18:42:02 -0400 |
commit | f77bbc8f86900b21abdec457b4153b30512e192d (patch) | |
tree | 2894fe9c38862a9bccea9c4c12b2e1c32d0b5dae /gcc/value-range.h | |
parent | b585af38a12bd6b64dbbb8c645e8e2b83b7ba012 (diff) | |
download | gcc-f77bbc8f86900b21abdec457b4153b30512e192d.zip gcc-f77bbc8f86900b21abdec457b4153b30512e192d.tar.gz gcc-f77bbc8f86900b21abdec457b4153b30512e192d.tar.bz2 |
c++: CTAD from initializer list [PR106366]
During CTAD, we currently perform the first phase of overload resolution
from [over.match.list] only if the class template has a list constructor.
But according to [over.match.class.deduct]/4 it should be enough to just
have a guide that looks like a list constructor (which is a more general
criterion in light of user-defined guides).
PR c++/106366
gcc/cp/ChangeLog:
* pt.cc (do_class_deduction): Don't consider TYPE_HAS_LIST_CTOR
when setting try_list_ctor. Reset args even when try_list_ctor
is true and there are no list candidates. Call resolve_args on
the reset args. Rename try_list_ctor to try_list_cand.
gcc/testsuite/ChangeLog:
* g++.dg/cpp1z/class-deduction112.C: New test.
Diffstat (limited to 'gcc/value-range.h')
0 files changed, 0 insertions, 0 deletions