Comment Comment by x1f604 I think the libstdc++ implementation does indeed have the comparisons ordered in the way that you describe. I stepped into the std::clamp() call in gdb and got this: ┌─/usr/include/c++/12/bits/stl_algo.h────────────────────────────────────────────────────────────────────────────────────── │ 3617 \* @pre `_Tp` is LessThanComparable and `(__hi < __lo)` is false. │ 3618 \*/ │ 3619 template<typename _Tp> │ 3620 constexpr const _Tp& │ 3621 clamp(const _Tp& __val, const _Tp& __lo, const _Tp& __hi) │ 3622 { │ 3623 __glibcxx_assert(!(__hi < __lo)); │ > 3624 return std::min(std::max(__val, __lo), __hi); │ 3625 } │ 3626 parent x1f604 2 years ago