- A+

Category：Languages

Suppose I have two variables which are both set to infinity

`double l = std::numeric_limits<double>::infinity(); double r = std::numeric_limits<double>::infinity(); `

At another point in the code, I have a comparison of these two variables

`if (l < r) {} `

Is the result of this comparison properly defined in the library? (Within the logic of my program, I would expect the result to be `false`

.)

(Within the logic of my program, I would expect the result to be

`false`

.)

According to this:

In comparison operations, positive infinity is larger than all values except itself and NaN

So you are indeed correct.

Note that this might not be valid if your compiler uses a different standard that IEEE 754, so make sure that `std::numeric_limits<double>::is_iec559;`

returns `true`

when in doubt.