// -*-c++-*-
// vim: set ft=cpp:

/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
   file Copyright.txt or https://cmake.org/licensing for details.  */
#ifndef cm_algorithm
#define cm_algorithm

#include <algorithm> // IWYU pragma: export
#include <cassert>

namespace cm {

#if __cplusplus >= 201703L || defined(_MSVC_LANG) && _MSVC_LANG >= 201703L

using std::clamp;

#else

template <typename T>
T const& clamp(T const& v, T const& lo, T const& hi)
{
  assert(!(hi < lo));
  return (v < lo) ? lo : (hi < v) ? hi : v;
}

template <typename T, typename Comp>
T const& clamp(T const& v, T const& lo, T const& hi, Comp comp)
{
  assert(!comp(hi, lo));
  return comp(v, lo) ? lo : comp(hi, v) ? hi : v;
}

#endif

} // namespace cm

#endif
