This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.

### 2282. [fund.ts] Incorrect `is_assignable` constraint in `optional::op=(U&&)`

Section: 5.3.3 [fund.ts::optional.object.assign] Status: Resolved Submitter: Howard Hinnant Opened: 2013-08-25 Last modified: 2015-10-26

Priority: Not Prioritized

View all other issues in [fund.ts::optional.object.assign].

View all issues with Resolved status.

Discussion:

Addresses: fund.ts

Minor wording nit in 5.3.3 [fund.ts::optional.object.assign]/p15:

>     template <class U> optional<T>& operator=(U&& v);

> > -15- Requires: `is_constructible<T, U>::value` is true and `is_assignable<U, T>::value` is true.

Should be:

>     template <class U> optional<T>& operator=(U&& v);

> > -15- Requires: `is_constructible<T, U>::value` is true and `is_assignable<T&, U>::value` is true.

[2013-09 Chicago:]

Move to Deferred. This feature will ship after C++14 and should be revisited then.

[2014-06-06 pre-Rapperswill]

This issue has been reopened as fundamentals-ts.

[2014-06-07 Daniel comments]

This issue should be set to Resolved, because the wording fix is already applied in the last fundamentals working draft.

[2014-06-16 Rapperswill]

Confirmed that this issue is resolved in the current Library Fundamentals working paper.

Proposed resolution:

This wording is relative to N3691.

1. Edit 5.3.3 [fund.ts::optional.object.assign] p15 as indicated:

   >     template <class U> optional<T>& operator=(U&& v);

   > > -15- Requires: `is_constructible<T, U>::value` is true and `is_assignable<U, TT&, U>::value` is true.