我正在读Setting an int to Infinity in C++。我了解,当一个人需要真正的无穷大时,应该使用numeric_limits<float>::infinity()
;我猜想其背后的原因是通常整数类型没有指定用于表示特殊状态(如NaN,Inf等)的值,例如IEEE 754浮点数(同样,C++也不强制-所使用的int
和float
留给实现) ;但是对于给定类型的max > infinity
仍然会产生误导。我试图了解标准中此调用背后的原理。如果使用infinity
对某种类型没有意义,那么是否应该禁止使用ojit_code而不是检查其有效性?
最佳答案
函数numeric_limits<T>::infinity()
对T
返回numeric_limits<T>::has_infinity
的那些true
有意义。
如果是T=int
,则返回false
。这样的比较是没有意义的,因为numeric_limits<int>::infinity()
不会返回任何有意义的值进行比较。
关于c++ - 为什么numeric_limits <int>::max()> numeric_limits <int>::infinity()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13861629/