26 template <
typename _Tp>
27 inline constexpr
const _Tp&
min(
const _Tp &a,
const _Tp &b)
29 return (a < b) ? a : b;
32 template <
typename _Tp>
33 inline constexpr
const _Tp&
max(
const _Tp &a,
const _Tp &b)
35 return (a < b) ? b : a;
41 #if !defined(_MSC_VER) && !TTK_HAS_CXX14
42 template <
typename _Tp,
typename _Up = _Tp>
44 inline _Tp
exchange(_Tp &__obj, _Up &&__new_val) noexcept
46 _Tp __old_val = std::move(__obj);
47 __obj = std::forward<_Up>(__new_val);
53 template <
typename _Tp>
54 inline constexpr
const _Tp&
clamp(
const _Tp &_Val,
const _Tp &_Min_val,
const _Tp &_Max_val)
_Tp exchange(_Tp &__obj, _Up &&__new_val) noexcept
Assign __new_val to __obj and return its previous value.
constexpr const _Tp & max(const _Tp &a, const _Tp &b)
The namespace of the process utils.
constexpr const _Tp & min(const _Tp &a, const _Tp &b)
constexpr const _Tp & clamp(const _Tp &_Val, const _Tp &_Min_val, const _Tp &_Max_val)