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: 26.8.9 [alg.min.max] Status: CD1 Submitter: Martin Sebor Opened: 2000-12-02 Last modified: 2016-01-28

Priority: Not Prioritized

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

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]).