Commit graph

631 commits

Author SHA1 Message Date
Niels Lohmann cf7786887c
🔨 fixed check for is_nothrow_copy_constructible
We now only demand our exceptions to be is_nothrow_copy_constructible
if std::runtime_exception is.
2017-03-25 17:35:57 +01:00
Niels Lohmann cc36c65a89
🚑 made exceptions nothrow-copy-constructible #531
To have nothrow-copy-constructible exceptions, we inherit from
std::runtime_error which can cope with arbitrary-length error messages.
Intermediate strings are built with static functions and then passed to
the actual constructor.
2017-03-25 16:22:52 +01:00
Niels Lohmann 31a6c0910e
🚑 fix for #519
Added catch branch for out_of_range exception that can occur if input
file contains a number overflow.
2017-03-17 22:18:48 +01:00
Niels Lohmann f547679de5
🚑 fix for #516 and #518
We should compare the binary serializations rather than the JSON values
themselves. This fix was already done for CBOR and apparently forgotten
for MessagePack.
2017-03-17 22:18:05 +01:00
Niels Lohmann cd43600e6f
💄 cleanup after #508 2017-03-16 19:02:05 +01:00
Niels Lohmann 773b33e016 Merge pull request #508 from theodelrieu/feature/c_array_conversion
add to_json method for C arrays
2017-03-16 19:00:58 +01:00
Niels Lohmann c5711f3072
🚧 a lot of minor changes
- Removed unused headers.
- Added override where needed.
- Added description for parse_error.113 exception.
- Fixed some conversion warnings.
- Integrated cbor_expect_string function for CBOR maps.
- Added documentation on the supported CBOR/MessagePack features.
- Added test to check all initial bytes for CBOR input.
2017-03-16 18:39:33 +01:00
Théo DELRIEU dbebf8de47
add to_json method for C arrays
If the array can be converted to basic_json::string_t, the overload
in this commit is not chosen.
2017-03-16 15:20:39 +01:00
Niels Lohmann 1de80e8af4
🔨 added user-defined exception #493
Replaced old std::invalid_argument exception by parse_error.111 to have
unified exceptions in case of input stream errors.
2017-03-14 21:31:36 +01:00
Niels Lohmann 63c2c62f19
🔨 changed call from "not good()" to "fail()" #493
Also merged develop into this feature branch.
2017-03-14 21:24:53 +01:00
Niels Lohmann b026591e9e
🚑 added special case to fuzzers to fix #504
Since #329, NaN and inf numbers do not yield an exception, but are
stored internally and are dumped as “null”. This commit adjusts the
fuzz testers to deal with this special case.
2017-03-14 21:05:38 +01:00
Niels Lohmann bfe4788e32
🚑 fix for #500
Removed a check that already failed in MSVC.
2017-03-14 16:14:05 +01:00
Niels Lohmann 84072fbd6d
💄 fixed indentation 2017-03-14 16:07:28 +01:00
Niels Lohmann c5cf32e34d
🔨 added user-defined exception 406 2017-03-12 20:59:33 +01:00
Niels Lohmann 855cdcf05c
🔀 merge branch 'develop' into feature/exceptions_3.0.0 2017-03-12 20:22:30 +01:00
Niels Lohmann 8feaf8dc94
💥 implemented new handling of NaN and INF #70 #329 #388
- If an overflow occurs during parsing a number from a JSON text, an
exception (std::out_of_range for the moment, to be replaced by a
user-defined exception #244) is thrown so that the overflow is detected
early and roundtripping is guaranteed.
- NaN and INF floating-point values can be stored in a JSON value and
are not replaced by null. That is, the basic_json class behaves like
double in this regard (no exception occurs). However, NaN and INF are
serialized to “null”.
- Adjusted test cases appropriately.
2017-03-12 18:38:05 +01:00
Niels Lohmann 87eafd8d6a
added regression tests for #473
These tests currently pass without any adjustments to the source code.
2017-03-12 15:20:17 +01:00
Niels Lohmann 89f6068385
Merge branch 'develop' into feature/exceptions_3.0.0 2017-03-12 11:51:24 +01:00
Niels Lohmann 4d7c29923e
🚑 fix for #486
Implemented std::less<value_t> to allow using value_t as std::map key
in MSVC.
2017-03-12 10:40:36 +01:00
Niels Lohmann 4e49829851
🚑 fix for #493
Added a test to check if the input stream is good() before executing
getline on it. Also added two test cases that set the failbit and
badbit before calling file_line_buffer.
2017-03-11 19:26:12 +01:00
Niels Lohmann ff0b18d10c
Merge branch 'feature/vector_bool' into develop 2017-03-11 17:22:14 +01:00
Niels Lohmann c7afb34e57
🎨 cleanup after #496
Ran “make pretty” and added a note to the README file.
2017-03-11 16:01:26 +01:00
Niels Lohmann f4126e4dd8
added overload for std::less<value_t> #486
MSVC needs this overload to compile code containing a std::map that
uses nlohmann::detail::operator as key.
2017-03-11 15:44:14 +01:00
Niels Lohmann f5f6dac800
added overload for std::vector<bool> #494
Adds a to_json function for std::vector<bool> to allow implicit
conversion from bit vectors to basic_json.
2017-03-11 15:32:44 +01:00
Ted Lyngmo 9cfb777b65 Fix -Weffc++ warnings (GNU 6.3.1) 2017-03-11 13:56:38 +01:00
Niels Lohmann 758c4addc1
🚑 fix for #492
The original test case relied on an invalidated iterator. This error
did not occur before, but only with GCC with -D_GLIBCXX_DEBUG. This
commit fixes the test case. The library is unaffected by this change.
2017-03-09 18:20:26 +01:00
Niels Lohmann 9374eaa013
🔨 added user-defined exception 501 2017-03-08 19:16:53 +01:00
Niels Lohmann c8a6ce79ea
🚑 fixing fuzzers to work with new exceptions 2017-03-08 18:37:03 +01:00
Niels Lohmann fc9b528ec9
🔨 changed an exception 2017-03-08 18:07:21 +01:00
Niels Lohmann 8fcd01631f
improved test coverage
Tests for parse_error.109 were missing.
2017-03-08 16:39:17 +01:00
Niels Lohmann 625cf7e3f7
🔨 added user-defined exception 112 2017-03-07 20:05:34 +01:00
Niels Lohmann 5407333224
🔨 added user-defined exception 111 2017-03-06 22:37:46 +01:00
Niels Lohmann 21ec0e7806
🔨 added user-defined exception 110 2017-03-06 21:00:13 +01:00
Niels Lohmann a186106bde
🔨 user-defined exception 302
Also moved all exception classes into the detail namespace and
introduced them via “using” into basic_json.
2017-03-06 19:34:44 +01:00
Niels Lohmann 38c2e20ce8
added user-defined exceptions 404-405 2017-03-05 23:25:22 +01:00
Niels Lohmann 30331fa21f
🔨 added user-defined exception 403 2017-03-05 23:16:17 +01:00
Niels Lohmann 60da36aee2
🔨 added user-defined exceptions 401-402 2017-03-05 22:56:39 +01:00
Niels Lohmann 491c9780a7
🔨 added user-defined exception 311 2017-03-05 22:39:21 +01:00
Niels Lohmann 6751d650be
🔨 added user-defined exception 311 2017-03-05 22:31:08 +01:00
Niels Lohmann 9e560ca40c
🔨 added user-defined exceptions 313-315 2017-03-05 19:58:26 +01:00
Niels Lohmann 144cf6a4c7
🔨 added user-defined exceptions 310 2017-03-05 19:48:11 +01:00
Niels Lohmann 5cca44c161
🔨 added user-defined exceptions 309 2017-03-05 19:42:05 +01:00
Niels Lohmann 70b2c3f45e
🔨 added user-defined exceptions 308 2017-03-05 19:35:24 +01:00
Niels Lohmann 2a9393af00
🔨 added user-defined exceptions 307 2017-03-05 19:26:44 +01:00
Niels Lohmann bb740c43fb
🔨 added user-defined exceptions 306 2017-03-05 19:15:56 +01:00
Niels Lohmann aa842b4a27
🔨 added user-defined exceptions 305 2017-03-05 19:08:12 +01:00
Niels Lohmann f473f74fb0
🔨 added user-defined exceptions 303-304 2017-03-05 18:56:35 +01:00
Niels Lohmann 068c7acda9
🔨 added user-defined exceptions 301 2017-03-05 18:40:09 +01:00
Niels Lohmann 0c40c8e3be
🔨 added user-defined exceptions 2xx 2017-03-03 14:34:57 +01:00
Niels Lohmann a4274d7766
🔨 added user-defined exceptions 205-206 2017-03-03 14:00:42 +01:00