我正在读Setting an int to Infinity in C++。我了解,当一个人需要真正的无穷大时,应该使用numeric_limits<float>::infinity();我猜想其背后的原因是通常整数类型没有指定用于表示特殊状态(如NaN,Inf等)的值,例如IEEE 754浮点数(同样,C++也不强制-所使用的intfloat留给实现) ;但是对于给定类型的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/

10-12 20:35