Giter VIP home page Giter VIP logo

Comments (7)

j4cbo avatar j4cbo commented on August 20, 2024

Comparisons on floating point numbers can be dangerous, but it's better for json11 to implement comparison as defined by the compiler (IEEE 754, etc) than to introduce potentially-surprising behavior like an epsilon. I think the right fix here is to disable the warning when compiling json11 or, if your compiler supports it, add some comments to suppress the warning.

from json11.

crashmatt avatar crashmatt commented on August 20, 2024

I am stuck with a project that enforces no float comparisons. Tried finding a way to suppress the compile error and failed. Is likely I didn't find the right way.
If I were to suggest anything I would make it a defined option.
I am now using a hacked up json11 version just to get me going.

Thanks for your comment. Closing for now.

/Matt

from json11.

j4cbo avatar j4cbo commented on August 20, 2024

One option would be switching to std::equal_to() - is your compiler happy with that?

from json11.

crashmatt avatar crashmatt commented on August 20, 2024

from json11.

artwyman avatar artwyman commented on August 20, 2024

What compiler are you using? Most of them have options to suppress warnings, and I don't think it would be unreasonable for us to put those warnings in the code here, so long as they were safely wrapped in #ifdefs.

from json11.

j4cbo avatar j4cbo commented on August 20, 2024

For clang, #pragma clang diagnostic ignored "-Wfloat-equal" should do it.

from json11.

crashmatt avatar crashmatt commented on August 20, 2024

Thanks for the hint. My failed search attempts didn't find that.

I am using gcc but some users are compiling the same code with clang. There is the gcc equivalent:
https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html

Which is pretty much the same thing. There is also:
#pragma GCC diagnostic push
#pragma GCC diagnostic pop

which hopefully works for clang also.

Will wrap it up in a nice #ifdef and submit a PR.

from json11.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.