Peter Dimov
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.