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;
42 template<
typename _Tp>
47 template<
typename _Tp>
51 #if !defined(_MSC_VER) && !TTK_HAS_CXX14
52 template <
typename _Tp,
typename _Up = _Tp>
54 inline _Tp
exchange(_Tp &__obj, _Up &&__new_val) noexcept
56 _Tp __old_val = std::move(__obj);
57 __obj = std::forward<_Up>(__new_val);
63 template <
typename _Tp>
64 inline constexpr
const _Tp&
clamp(
const _Tp &_Val,
const _Tp &_Min_val,
const _Tp &_Max_val)
typename remove_all_extents< _Tp >::type remove_all_extents_t
Alias template for remove_all_extents.
typename remove_extent< _Tp >::type remove_extent_t
Alias template for remove_extent.
_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)