https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64759
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Lakshay Garg from comment #2) > It makes sense to compare against 0 but not 0.0 Huh? Why not? This code seems perfectly reasonable to me: double divisor; std::cin >> divisor; if (!divisor) throw std::invalid_argument("Divide by zero attempted");