[v3 PATCH] PR libstdc++/77288 and the newest proposed resolution for LWG 2756

Jonathan Wakely jwakely@redhat.com
Wed Sep 21 09:31:00 GMT 2016


On 06/09/16 09:00 +0300, Ville Voutilainen wrote:
>    PR libstdc++/77288
>    * include/std/optional (__is_optional_impl, __is_optional): Remove.
>    (__converts_from_optional, __assigns_from_optional): New.
>    (optional(_Up&&)): Use is_same instead of __is_optional.
>    (optional(const optional<_Up>&)): Constrain with
>    __converts_from_optional.
>    (optional(optional<_Up>&&)): Likewise.
>    (operator=(_Up&&)): Use is_same instead of __is_optional, check
>    is_same and is_scalar.
>    (operator=(const optional<_Up>&)): Constrain with
>    __converts_from_optional and __assigns_from_optional.
>    (operator=(optional<_Up>&&)): Likewise.
>    * testsuite/20_util/optional/77288.cc: New.
>    * testsuite/20_util/optional/cons/value.cc: Adjust.

OK for trunk, thanks.



More information about the Libstdc++ mailing list