为什么我得到警告C4756:在返回float :: PositiveInfinity时,在常量算术中溢出?

时间:2014-09-04 13:51:55

标签: floating-point c++-cli overflow

我有一些代码返回float :: PositiveInfinity以指示事件永远不会发生但由于某种原因编译器(MS Visual Studio 2013)给出了以下警告:

warning C4756: overflow in constant arithmetic

有问题的代码如下:

property float MinsRemainingUntilNextEvent
{
    virtual float get()
    { 
        return float::PositiveInfinity;
    }
}

这是什么意思,我应该关心吗? MS's documentation没有为我解释......

1 个答案:

答案 0 :(得分:6)

我敢打赌,编译器的实现者选择为任何可以在编译时计算的浮点表达式发出警告,其结果是+inf,这意味着警告会系统地为float::PositiveInfinity发出。

您对float::PositiveInfinity的使用完全有效且无害。忽略警告。我想建议你得到一个更好的编译器,但是当涉及到浮点时GCC是similarly silly