假设我想为每种类型写一个绝对值函数。 类似的东西:
template <class T>
T MyAbsVersion(T num)
{
return (num > 0) ? num : num*-1;
}
但是,我想拒绝无符号类型的数字。 有什么好办法吗?
由于
答案 0 :(得分:7)
使用std::is_signed
接受仅signed
类型的数字
template<class T ,
typename std::enable_if< std::is_signed<T>::value >::type* = nullptr >
T myabs(T num)
{
return (num > 0) ? num : num*-1;
}
演示Here