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

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

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 (20.5.3.1 [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]).