我想要以下形式的功能
template <typename T, typename U>
U clipAndCast(T x)
{
...
return y;
},
其中y是x强制转换为U型,但如果需要,则剪裁x,以便明确定义此强制转换。
是否有库或升级功能吗?我找不到一个,所以如果没有找到这样一个函数的最佳方法是什么?
答案 0 :(得分:1)
这样做的方法是测试进入的值是否大于或等于外出类型的最小值,小于或等于外出类型的最大值。您可以使用std::numeric_limits<U>::min()
和std::numeric_limits<U>::max()
来获取最小值和最大值。
答案 1 :(得分:1)