ranges::clamp
ranges::clamp (범위로 값 제한)
값을 하한·상한 사이로 제한하는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
std::ranges::clamp는 v를 lo와 hi 사이로 제한해, 경계 안에 가장 가까운 값의 참조를 반환해요.
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 < lo면lo를,hi < v면hi를, 그 사이면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 로직에 유용해요.