template<class T>
constexpr const T&
clamp(const T& v, const T& lo, const T& hi);
template<class T, class Compare>
constexpr const T&
clamp(const T& v, const T& lo, const T& hi, Compare comp);
ヘッダーファイル<algorithm>
に追加されたclamp(v, lo, hi)
は値v
がlo
より小さい場合はlo
を、hi
より高い場合はhi
を、それ以外の場合はv
を返す。
int main()
{
std::clamp( 5, 0, 10 ) ; // 5
std::clamp( -5, 0, 10 ) ; // 0
std::clamp( 50, 0, 10 ) ; // 10
}
comp
を実引数に取るclamp
はcomp
を値の比較に使う
clamp
には浮動小数点数も使えるが、NaNは渡せない。