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

### 281. std::min() and max() requirements overly restrictive

Section: 27.8.9 [alg.min.max] Status: CD1 Submitter: Martin Sebor Opened: 2000-12-02 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [alg.min.max].

View all issues with CD1 status.

Duplicate of: 486

Discussion:

The requirements in 25.3.7, p1 and 4 call for T to satisfy the requirements of `LessThanComparable` ( [lessthancomparable]) and `CopyConstructible` (16.4.4.2 [utility.arg.requirements]). Since the functions take and return their arguments and result by const reference, I believe the `CopyConstructible` requirement is unnecessary.

Proposed resolution:

Remove the `CopyConstructible` requirement. Specifically, replace 25.3.7, p1 with

-1- Requires: Type T is `LessThanComparable` ( [lessthancomparable]).

and replace 25.3.7, p4 with

-4- Requires: Type T is `LessThanComparable` ( [lessthancomparable]).