6ffe854859
Implement LWG 2451, optional<T> should 'forward' T's implicit conversions. * include/experimental/optional (__is_optional_impl, __is_optional): New. (optional()): Make constexpr and default. (optional(_Up&&), optional(const optional<_Up>&), optional(optional<_Up>&& __t): New. (operator=(_Up&&)): Constrain. (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New. * testsuite/experimental/optional/cons/value.cc: Add tests for the functionality added by LWG 2451. * testsuite/experimental/optional/cons/value_neg.cc: New. From-SVN: r238049