diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/common/Utilities/advstd.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/common/Utilities/advstd.h b/src/common/Utilities/advstd.h index 048765ab2c9..f2db86f11b2 100644 --- a/src/common/Utilities/advstd.h +++ b/src/common/Utilities/advstd.h @@ -149,6 +149,18 @@ namespace advstd struct disjunction<B1> : B1 { }; template <typename B1, class... Bn> struct disjunction<B1, Bn...> : std::conditional_t<bool(B1::value), B1, disjunction<Bn...>> { }; + + template <class T> + constexpr T const& clamp(T const& val, T const& lo, T const& hi) + { + if (hi < val) + return hi; + + if (val < lo) + return lo; + + return val; + } } #endif |