[Bug libstdc++/90165] std::variant constructs wrong alternative

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue May 7 15:47:00 GMT 2019


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

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Tue May  7 15:46:36 2019
New Revision: 270966

URL: https://gcc.gnu.org/viewcvs?rev=270966&root=gcc&view=rev
Log:
PR libstdc++/90165 constrain variant(T&&) constructor

Backport from mainline
2019-04-23  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/90165
        * include/std/variant (variant::__is_in_place_tag)
        (variant::__not_in_place_tag): New helpers for variant(T&&)
        constructor constraint.
        (variant::variant(T&&)): Use __not_in_place_tag in constraints.
        * testsuite/20_util/variant/compile.cc: Check variant(T&&) constructor
        isn't used for in_place_type or in_place_index arguments.

Modified:
    branches/gcc-8-branch/libstdc++-v3/ChangeLog
    branches/gcc-8-branch/libstdc++-v3/include/std/variant
    branches/gcc-8-branch/libstdc++-v3/testsuite/20_util/variant/compile.cc


More information about the Gcc-bugs mailing list