【发布时间】:2020-05-12 16:28:22
【问题描述】:
我天真地尝试过
template<typename T>
void foo(T a, T b){
if(min==max){
max += std::numeric_limits<T>::epsilon();
}
// Do some other stuff
}
但是我发现 epsilon 为整数类型返回 0 而不是 1,这似乎是一个疏忽。如何解决上述问题,包括整数?
【问题讨论】:
-
对于整数
max,下一个更大的值是max+1。在执行此操作之前,请检查max是否已经不是最大可表示值。
标签: c++ c++11 numbers numeric-limits