https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90233
Bug ID: 90233 Summary: std::hash<long double>()(INFINITY) == std::hash<long double>()(0) Product: gcc Version: 8.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- #include <functional> #include <iostream> #include <cmath> int main() { std::hash<double> hd; std::hash<long double> hl; std::cout << hd(0) << ' ' << hd(INFINITY) << ' ' << hd(-INFINITY) << '\n'; std::cout << hl(0) << ' ' << hl(INFINITY) << ' ' << hl(-INFINITY) << '\n'; } Output: 0 3377428025507081056 6848127736350075394 0 0 0