2283. [fund.ts] optional declares and then does not define an operator<()

Section: 5.9 [fund.ts::optional.comp_with_t] Status: Resolved Submitter: Howard Hinnant Opened: 2013-08-26 Last modified: 2021-06-06

Priority: Not Prioritized

View all issues with Resolved status.

Discussion:

Addresses: fund.ts

In 22.5.2 [optional.syn] there is:

template <class T> constexpr bool operator<(const T&, const optional<T>&);

But I can find no definition for this signature.

[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. Add to 5.9 [fund.ts::optional.comp_with_t]:

    template <class T> constexpr bool operator<(const T& v, const optional<T>& x);
    

    -?- Returns: bool(x) ? less<T>{}(v, *x) : false.