我需要创建多个函数来检查输入是否有效。
这是我的一些代码:
bool IsValidRange(signed char s)
{
bool isValid = true;
if (!((s>=SCHAR_MIN)&&(s<=SCHAR_MAX)))
{
isValid = false;
}
return isValid;
}
bool IsValidRange(int s)
{
bool isValid = true;
if (!((s>=INT_MIN)&&(s<=INT_MAX)))
{
isValid = false;
}
return isValid;
}
我为此使用标头 limit.h 。我这样做的方式正确吗?请注意,我只是一个初学者。希望大家能够理解。谢谢你!
除了浮点数之外,上面的模板不适用于有符号和无符号类型的混合。
template<typename RangeType, typename ValueType >
bool IsInRange( ValueType value )
{
if( ! numeric_limits<RangeType>::is_integer )
{
return (value > 0 ? value : -value) <= numeric_limits<RangeType>::max();
}
if ( numeric_limits<RangeType>::is_signed ==
numeric_limits<ValueType>::is_signed )
{
return value >= numeric_limits<RangeType>::min() &&
value <= numeric_limits<RangeType>::max();
}
else if( numeric_limits<RangeType>::is_signed )
{
return value <= numeric_limits<RangeType>::max();
}
else
{
return value >= 0 && value <= numeric_limits<RangeType>::max();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)