yohhoyの日記

技術的メモをしていきたい日記

std::clamp

C++1z(C++17)標準ライブラリでは、指定区間内に値を制限するstd::clamp関数テンプレートが追加される。*1

#include <algorithm>

int b = std::clamp(3, 1, 6);  // 3
int a = std::clamp(0, 1, 6);  // 1(下限値)
int c = std::clamp(8, 1, 6);  // 6(上限値)

同様の関数テンプレートはBoost.Algorithmライブラリでも提供される。

#include <boost/algorithm/clamp.hpp>

int x = boost::algorithm::clamp(3, 1, 6);

関連URL

*1:clamp は、両側から挟み込む動作/そのような道具の意味。