diff options
author | Ville Voutilainen <ville.voutilainen@gmail.com> | 2019-04-01 16:57:41 +0300 |
---|---|---|
committer | Ville Voutilainen <ville@gcc.gnu.org> | 2019-04-01 16:57:41 +0300 |
commit | f1ba6c5a51936ac9065789b1fdb77f4e35f90efd (patch) | |
tree | 7c62957207e8e4e859e378353dc277ddb6d8ef9d /gcc | |
parent | e37240b0b556c2bcdf94b0a84ff798cd4bd5a316 (diff) | |
download | gcc-f1ba6c5a51936ac9065789b1fdb77f4e35f90efd.zip gcc-f1ba6c5a51936ac9065789b1fdb77f4e35f90efd.tar.gz gcc-f1ba6c5a51936ac9065789b1fdb77f4e35f90efd.tar.bz2 |
Use single-visitation in variant assignment and swap and relops.
Also use indices instead of types when checking whether
variants hold the same thing.
* include/std/variant (__do_visit): Add a template parameter
for index visitation, invoke with indices if index visitation
is used.
(__variant_idx_cookie): New.
(__visit_with_index): Likewise.
(_Copy_assign_base::operator=): Do single-visitation with
an index visitor.
(_Move_assign_base::operator=): Likewise.
(_Extra_visit_slot_needed): Adjust.
(__visit_invoke): Call with indices if it's an index visitor.
(relops): Do single-visitation with an index visitor.
(swap): Likewise.
(__visitor_result_type): New.
From-SVN: r270056
Diffstat (limited to 'gcc')
0 files changed, 0 insertions, 0 deletions