我正在尝试更清晰,紧凑地编写我的c ++代码,因此,我正在尝试避免这样的语句:
if(MIN_VALUE <= a && a <= MAX_VALUE)
并将其替换为类似于以下内容的
if(a in [MIN_VALUE, MAX_VALUE])
答案 0 :(得分:19)
您可以使用std::clamp
,它与大多数STL函数不同,它以封闭时间间隔[lo, hi]
返回值:
if (v == std::clamp(v, lo, hi)) {
// lo <= v && v <= hi.
}
答案 1 :(得分:7)
没有,但是您可以自己构建:
template <typename T>
bool in(const T& a, const T& low, const T& high)
{
return a - low <= high - low;
}