Created on 2016-03-23.00:00:00 last changed 90 months ago
Proposed resolution:
This wording is relative to N4582.
Edit [alg.clamp] as indicated:
template<class T> constexpr const T& clamp(const T& v, const T& lo, const T& hi); template<class T, class Compare> constexpr const T& clamp(const T& v, const T& lo, const T& hi, Compare comp);-1- Requires: The value of lo shall be no greater than hi. For the first form, type T shall be LessThanComparable (Table 18).
-2- Returns: lo if v is less than lo, hi if hi is less than v, otherwise vThe larger value of v and lo if v is smaller than hi, otherwise the smaller value of v and hi. -3- NoteRemarks: If NaN is avoided, T can be a floating point typeReturns the first argument when it is equivalent to one of the boundary arguments. -4- Complexity: At most two comparisons.
[ 2016-05 Issues Telecon ]
Reworded p3 slightly.
In Jacksonville (2016), P0025R0 was voted in instead of the intended P0025R1. This report contains the necessary mending along with two other improvements.
This report:adds the precondition that misses from P0025R0 but is in P0025R1,
corrects the returns: specification that contains an extraneous condition,
replaces the now superfluous remark with a note on usage of clamp with float or double.
Thanks to Carlo Assink and David Gaarenstroom for making us aware of the extraneous condition in the returns: specification and for suggesting the fix and to Jeffrey Yasskin for suggesting to add a note like p3.
Previous resolution [SUPERSEDED]:
Edit [alg.clamp] as indicated:
template<class T> constexpr const T& clamp(const T& v, const T& lo, const T& hi); template<class T, class Compare> constexpr const T& clamp(const T& v, const T& lo, const T& hi, Compare comp);-1- Requires: The value of lo shall be no greater than hi. For the first form, type T shall be LessThanComparable (Table 18).
-2- Returns: lo if v is less than lo, hi if hi is less than v, otherwise vThe larger value of v and lo if v is smaller than hi, otherwise the smaller value of v and hi. -3- NoteRemarks: If NaN is avoided, T can be float or doubleReturns the first argument when it is equivalent to one of the boundary arguments. -4- Complexity: At most two comparisons.
History | |||
---|---|---|---|
Date | User | Action | Args |
2017-07-30 20:15:43 | admin | set | status: wp -> c++17 |
2016-06-28 12:50:44 | admin | set | status: ready -> wp |
2016-05-22 15:38:38 | admin | set | messages: + msg8135 |
2016-05-22 15:38:38 | admin | set | status: new -> ready |
2016-05-06 16:48:25 | admin | set | messages: + msg8077 |
2016-03-23 00:00:00 | admin | create |