diff --git a/include_std/algorithm b/include_std/algorithm index 85eb61b..918bc20 100644 --- a/include_std/algorithm +++ b/include_std/algorithm @@ -52,6 +52,19 @@ namespace std return (a > b) ? a : b; } + template + constexpr const T &clamp(const T &v, const T &lo, const T &hi) + { + return std::max(lo, std::min(v, hi)); + } + + template + constexpr const T &clamp(const T &v, const T &lo, const T &hi, Compare comp) + { + return comp(v, lo) ? lo : comp(hi, v) ? hi + : v; + } + template constexpr InputIt find(InputIt first, InputIt last, const T &value) {