https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89819

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|10.0                        |9.0

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Ville corrected me, this was already fixed by r270056

    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.

Reply via email to