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

--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jonathan Wakely
<r...@gcc.gnu.org>:

https://gcc.gnu.org/g:91d29ed563bd7e787921f997ea2f80cd87ee59b2

commit r9-9592-g91d29ed563bd7e787921f997ea2f80cd87ee59b2
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Tue May 4 12:16:46 2021 +0100

    libstdc++: Do not use deduced return type for std::visit [PR 100384]

    This avoids errors outside the immediate context when std::visit is an
    overload candidate because of ADL, but not actually viable.

    The solution is to give std::visit a non-deduced return type. New
    helpers are introduced for that.

    libstdc++-v3/ChangeLog:

            PR libstdc++/100384
            * include/std/variant (__get_t): New alias template yielding the
            return type of std::get<N> on a variant.
            (__visit_result_t): New alias template yielding the result of
            std::visit.
            (__do_visit): Use __get_t.
            (visit): Use __visit_result_t for return type.
            * testsuite/20_util/variant/100384.cc: New test.

    (cherry picked from commit af5b2b911dd80ae9cc87404b7e7ab807cf6655d4)

Reply via email to