On 21 September 2016 at 12:31, Jonathan Wakely <jwak...@redhat.com> wrote: > 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.
Thanks, applied - I will cook up a separate patch for making the same fix for experimental::optional. The plan is to then backport that one to the gcc-6 branch.