Comments (7)
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.
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.
One option would be switching to std::equal_to() - is your compiler happy with that?
from json11.
from json11.
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.
For clang, #pragma clang diagnostic ignored "-Wfloat-equal"
should do it.
from json11.
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)
- is it possible to add fields to the json? HOT 1
- in json11.cpp line 161 , why use static_cast, what if a json object is a runtime parsed object HOT 1
- clang 6.0 compilation error HOT 2
- Check if a json object key exists HOT 2
- differentiate between "number" and "integer" as per json schema HOT 1
- Tag Versioning HOT 6
- Number size issue.
- Can't parse wstring?
- auto casting HOT 4
- has_shape() always returns true when used with json11::Json::NUL HOT 1
- [Feature] conan package manager support HOT 1
- Order serealization Json::object HOT 2
- ASAN reports runtime error HOT 1
- swig4.0.0 and mingw compile the test.cpp(main modified to be a function) :error: 'final' is not a member of 'json11' HOT 3
- can't be loaded as a dll in low version c++? HOT 2
- Warning '-Werror=overloaded-virtual' with gcc-5.1.0 --std=c++14 HOT 1
- Making object_items(), array_items() not const or alternatively support mutable_object_items() HOT 1
- Super stuff. HOT 1
- No API to add Json (f.e. array) to Json::object outside of ctor. HOT 1
- Buliding for windows? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from json11.