Issue 281: std::min() and max() requirements overly restrictive (original) (raw)
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]).