Peter Dimov

Results 289 comments of Peter Dimov

The values that fail this test are ``` >eps: 1002.91118016052 0x1.f574a18d2f195p+9, 1002.91118016052 0x1.f574a18d2f194p+9 >eps: -1207.129092917311 -0x1.2dc8430ef07fep+10, -1207.129092917312 -0x1.2dc8430ef07ffp+10 >eps: 370.9153557075444 0x1.72ea54c06c1c4p+8, 370.9153557075445 0x1.72ea54c06c1c5p+8 >eps: -2578.552304966596 -0x1.4251ac7b771e6p+11, -2578.552304966596 -0x1.4251ac7b771e5p+11 ``` and...

The default precision of std::cout is 6 digits, which is why you get 1.18588 printed.

I don't understand this comment.

std::hash specializations must follow whatever the type's operator== does. They have no opinion of their own on what it ought to do.

I don't think that `value(7)` and `value(7.0)` compare equal?

The expression `7 == 7.0` doesn't actually compare `7` and `7.0`. It converts `7` to `7.0`, then compares `7.0` and `7.0`.

The default should be the same as passing `{}`, that is, throw/error. This may not technically be the most correct default, but it's the most intuitive given the interface. The...

> and to a lesser extent, python. That's exactly what the current behavior is.

I don't get it, why does this need its own streambuf?

You need to enclose the expression in parentheses.