ranges::clamp

ranges::clamp (범위로 값 제한)

값을 하한·상한 사이로 제한하는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

std::ranges::clampvlohi 사이로 제한해, 경계 안에 가장 가까운 값의 참조를 반환해요.

namespace std::ranges {
template< class T, class Comp = ranges::less, class Proj = std::identity >
requires std::indirect_strict_weak_order<Comp, const T*, const T*>
constexpr const T& clamp( const T& v, const T& lo, const T& hi,
                          Comp comp = {}, Proj proj = {} );
}
  • v < lolo를, hi < vhi를, 그 사이면 v를 반환해요.
  • comp(기본 ranges::less)로 비교해요.
  • lo > hi면 동작이 미정의예요.
int x = std::ranges::clamp(15, 0, 10);   // 10
int y = std::ranges::clamp(-5, 0, 10);   // 0

std::clamp의 ranges/제약 버전이에요. 값 범위를 유지하는 게임/UI 로직에 유용해요.

더 알아보기 (Learn more)

cppreference