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
Niels Lohmann
875b2da95d
🔨 added user-defined exceptions 203-204
2017-03-03 13:38:14 +01:00
Niels Lohmann
9381f6c4da
🔨 added user-defined exceptions 201-202
...
Started implementing exceptions for invalid iterators.
2017-03-03 13:19:45 +01:00
Niels Lohmann
0c6b1f8a24
Merge branch 'develop' into feature/exceptions_3.0.0
2017-03-03 12:54:45 +01:00
Niels Lohmann
776758d7a2
🔨 added user-defined exception 109
...
This exception occurs when a JSON pointer contains an array index that
can not be converted into a number.
2017-03-03 12:54:37 +01:00
Niels Lohmann
b86d2148ef
🔨 added user-defined exceptions 106-108
...
These exceptions occur when JSON pointers are malformed.
2017-03-03 11:56:58 +01:00
Niels Lohmann
01d3a006b1
⬆️ updated Catch to v1.8.1
2017-03-02 18:13:19 +01:00
Niels Lohmann
06815d274e
🔨 added user-defined exceptions 104 and 105
...
These exceptions are thrown in case of parse errors in JSON patch
documents.
2017-03-02 17:55:13 +01:00
Niels Lohmann
c085e3bac2
🔨 started with user-defined exceptions #301 #244
...
Added class hierarchy for user-defined exceptions (#244 ). Integrated
parse exceptions 101-103. Parse exceptions include the byte count of
the last read character to locate the position of the error (#301 ).
2017-03-01 21:28:44 +01:00
Niels Lohmann
7b8fd864e2
🔥 removed deprecated constructor #480
...
The constructor basic_json(std::istream&, const parser_callback_t) has
been deprecated since version 2.0.0. This commit removes it together
with its code example, deprecation macro, and test cases. The code now
also compiles with -W-deprecated-declarations.
2017-03-01 17:49:03 +01:00
Niels Lohmann
d69242c6ba
💄 cleanup
...
- Added comments for the serializer class.
- Added test case for resizing of the indentation string.
- Using std::none_of to check if “.0” needs to be added to
floating-point number.
2017-02-28 19:20:50 +01:00
Niels Lohmann
224f99070b
⚡ micro-optimization of dump()
...
A lot of small changes to avoid memory allocations:
- The locale is only queried once rather than with every number
serialization.
- The indentation string is recycled between different calls.
- The string escape function avoids a copy if no escaping is necessary.
- The string escape and the space function use a complete switch case
instead of cascaded ifs.
Cachegrind measures some 15% performance improvement.
2017-02-28 16:28:22 +01:00
Niels Lohmann
54ef5f7b47
🔨 moved serialization functions to serializer class
...
The class is currently just a wrapper for an std::ostream and collects
all functions related to serialization. The next step should be
recycling of variables to avoid repetitive initialization for each
recursive dump call.
2017-02-27 21:22:39 +01:00
Niels Lohmann
bf4d744d1a
✅ more tests for meta() call
2017-02-26 14:34:58 +01:00
Niels Lohmann
d1b30250d6
✅ added missing tests
2017-02-26 11:50:52 +01:00
Niels Lohmann
27c65b860b
🔖 version 2.1.1
2017-02-25 16:34:38 +01:00
Niels Lohmann
a646c9c599
🔀 merge branch 'cotire' of https://github.com/tusharpm/json into tusharpm-cotire
2017-02-22 19:45:10 +01:00
Niels Lohmann
8cec55a271
🚧 fixed more warnings
2017-02-22 18:14:29 +01:00
Niels Lohmann
7d14f167b8
🚑 fix for #465
2017-02-20 22:48:27 +01:00
Niels Lohmann
1a6d7f5bca
🚧 try to fix some warnings in MSVC
2017-02-20 18:32:11 +01:00
Niels Lohmann
83f1d2c81b
✨ added start index for from_cbor and from_msgpack ( #462 )
2017-02-19 21:17:05 +01:00
Niels Lohmann
4151f2d297
✅ added test with thousands_sep
2017-02-19 20:08:01 +01:00
Tushar Maheshwari
85ce4d7b53
⚡ cmake compile time reduce using cotire
...
- Add prefix header
- Include catch.hpp
- Include json.hpp
- Replace private with public for all json_unit files
- Move `unit.cpp` to an object library
- cotire issue: strip whitespace from CMAKE_INCLUDE_SYSTEM_FLAG_CXX
2017-02-19 13:35:54 +05:30
Niels Lohmann
513eb3ab5f
🚧 clean up
2017-02-18 11:00:18 +01:00
Niels Lohmann
6408402ad2
🔀 merge #378 (for #362 and #454 )
2017-02-16 09:24:45 +01:00
Niels Lohmann
057b1e606b
🔀 merged #415 (fix for #414 )
2017-02-16 08:50:20 +01:00
Niels Lohmann
b9f3149451
🚑 fix for #452
2017-02-15 21:30:28 +01:00
Mihai STAN
6bf93b3d06
Merge remote-tracking branch 'upstream/develop' into develop
2017-02-15 15:00:25 +02:00
Niels Lohmann
22b9a301d6
Merge pull request #450 from nlohmann/TurpentineDistillery-feature/locale_independent_str_to_num
...
TurpentineDistillery feature/locale independent str to num
2017-02-14 07:18:35 +01:00
Niels Lohmann
c95ff863bf
⬆️ updated Catch to v1.7.2
2017-02-13 18:55:11 +01:00
Niels Lohmann
265c5b5207
🔨 more work on the number parser
2017-02-13 18:51:23 +01:00
Niels Lohmann
b84705d557
✅ improved test coverage
2017-02-12 20:14:43 +01:00
Niels Lohmann
c8191c8172
🔨 further cleanup
2017-02-12 18:50:17 +01:00
Niels Lohmann
c2d55109c1
🔨 make lexer distinguishes number types
2017-02-11 16:54:25 +01:00
Niels Lohmann
8d88a1da2a
🔀 merged #379 and fixed conflicts
2017-02-05 13:13:41 +01:00
Niels Lohmann
d284c86dd1
✅ uncommented some tests
2017-02-04 21:00:41 +01:00
Niels Lohmann
922fe693e1
⬆️ updated Catch to v1.7.0
2017-02-04 15:30:28 +01:00
Niels Lohmann
1cfdc2a753
🐛 fixed test compilation
2017-02-04 08:25:55 +01:00
Niels Lohmann
5976caf032
⚡ improved test compilation speed #445
2017-02-03 18:09:55 +01:00
Niels Lohmann
16af771277
✅ added roundtrip test for the Big List of Naughty Strings
2017-02-01 17:34:39 +01:00
Niels Lohmann
0164b10e10
✅ added missing tests found by mutate++
2017-01-29 17:18:58 +01:00
Niels Lohmann
d870826811
🔖 set version to 2.1.0
2017-01-28 16:03:35 +01:00
Mihai STAN
6198439f59
fix #414 - comparing to 0 literal
...
Overload comparison operators for all types that could be converted
to nullptr.
2017-01-24 22:33:37 +02:00
Niels Lohmann
030cf674ef
🚧 fixed a warning
2017-01-24 12:49:38 +01:00
Niels Lohmann
3857e55290
💄 ran "make pretty"
2017-01-24 12:43:43 +01:00
Théo DELRIEU
9f103d19d7
add implicit conversions test (operator T())
2017-01-22 14:23:24 +01:00
Théo DELRIEU
9f8b270ed9
fix some warnings
2017-01-22 14:07:28 +01:00
Théo DELRIEU
7f359017d2
rename template argument Json -> BasicJsonType
2017-01-21 19:12:40 +01:00
Théo DELRIEU
708eb9613b
disable reserve tests when exceptions are disabled
2017-01-21 19:12:40 +01:00
Théo DELRIEU
3e15b551e0
run make pretty
2017-01-21 16:14:22 +01:00
Théo DELRIEU
b56117b148
add noexcept tests
2017-01-21 16:14:22 +01:00
Théo DELRIEU
07bc82d3a7
put const to the left
2017-01-21 16:14:22 +01:00
Théo DELRIEU
f1482d1f01
more tests in unit-udt
2017-01-21 16:14:22 +01:00
Théo DELRIEU
b8012876a5
add noexcept checks, and some missing noexcepts
2017-01-21 16:14:22 +01:00
Théo DELRIEU
1554baa01d
attempting to fix coverage. testing that reserve is called
2017-01-21 16:14:22 +01:00
Théo DELRIEU
3494014ba0
new unit-udt.cpp tests
2017-01-21 16:14:22 +01:00
Théo DELRIEU
be6b417c87
tweak SFINAE checks for internal types (see commit body)
...
only check for public types (iterators, json_pointer)
for private ones (m_array.iterator, primitive_iterator) simply double
parentheses on relevant Catch checks
2017-01-21 16:14:22 +01:00
Théo DELRIEU
c847e0eea2
replace constructor by from/to_json: array_t
...
- tweaked a bit how `get<container<json>>` is handled
- added a from_json overload for forward list
2017-01-21 16:14:22 +01:00
Théo DELRIEU
6d427acdde
replace constructor by from/to_json: unscoped enum types
...
this also means that one can do: j.get<unscoped_enum>();
2017-01-21 16:14:22 +01:00
Théo DELRIEU
a32de3b528
replace constructor by from/to_json: number_unsigned_t
...
This commit forces a design change in custom JSONSerializer, which might
be temporary
2017-01-21 16:14:21 +01:00
Niels Lohmann
be1d3de49b
💄 moved changes to re2c file and ran make pretty
2017-01-21 16:14:21 +01:00
Théo DELRIEU
aa2679a8ce
fix tests, avoid instantiating JSONSerializer when it will not be used
2017-01-21 16:14:21 +01:00
Théo DELRIEU
d5ee5830ed
add more tests
2017-01-21 16:14:21 +01:00
Théo DELRIEU
1c21c87e6f
use u8 prefix in unit-udt.cpp
2017-01-21 16:14:21 +01:00
Théo DELRIEU
7e750ec1fa
fix msvc, by doubling parenthesis on catch assertions
2017-01-21 16:14:21 +01:00
Théo DELRIEU
3d405c6883
add support for enum classes
2017-01-21 16:14:21 +01:00
Théo DELRIEU
8e43d476d3
add more tests to unit-udt.cpp
2017-01-21 16:14:21 +01:00
Théo DELRIEU
1eafac7220
remove explicit keyword on udt-constructor
2017-01-21 16:14:21 +01:00
Théo Delrieu
c0c72b5b62
rewrite unit-udt: basic usage
2017-01-21 16:14:21 +01:00
Théo DELRIEU
60e6f822fa
add support for non-default-constructible udt
2017-01-21 16:14:21 +01:00
Théo DELRIEU
e5999c6c82
add a few tests
2017-01-21 16:14:21 +01:00
Théo DELRIEU
88819449c2
remove constraints on JSONSerializer instances, constrain correctly new methods
2017-01-21 16:14:21 +01:00
Théo DELRIEU
23bd2bce35
add is_compatible_* traits
2017-01-21 16:14:21 +01:00
Théo DELRIEU
178441cdfd
add basic test for custom serializer
2017-01-21 16:14:21 +01:00
Théo DELRIEU
2bc685f6b4
to_json and from_json takes both two arguments now
...
the first is the basic_json type, the second the user-defined type
2017-01-21 16:14:21 +01:00
Théo DELRIEU
837b81d672
renamed unit-constructor3.cpp to unit-udt.cpp
2017-01-21 16:14:21 +01:00
Théo DELRIEU
7dc268ef42
add first version for alternate implementation
2017-01-21 16:14:21 +01:00
Théo DELRIEU
4cdc61e493
move most SFINAE trickery in to/from_json_fn
2017-01-21 16:14:21 +01:00
Théo DELRIEU
fe628b585b
anonymous namespace renamed to detail
2017-01-21 16:14:21 +01:00
Théo Delrieu
b443edf49e
add first version support for user-defined types
2017-01-21 16:14:20 +01:00
Niels Lohmann
1ab26ab367
✨ option to switch off exceptions
2017-01-16 22:11:07 +01:00
Niels Lohmann
a7f3938391
✅ added Big List of Naughty Strings
2017-01-16 20:03:50 +01:00
Niels Lohmann
3a9ccfac22
🚧 cleanup
2017-01-12 21:35:27 +01:00
Niels Lohmann
98ad3c3ac1
Merge branch 'develop' into feature/release_information
2017-01-12 21:30:08 +01:00
Niels Lohmann
0f03543861
⬆️ upgraded to Catch 1.6.0
2017-01-11 22:23:02 +01:00
Niels Lohmann
e9bbf5aaba
🐛 forgot to remove a test case
2017-01-08 09:31:40 +01:00
Niels Lohmann
dd45ba6f89
🚧 renamed version()
to meta()
2017-01-08 09:19:44 +01:00
Alex Astashyn
c236b596c9
Merge upstream/develop into feature/locale_independent_str_to_num
2017-01-04 19:20:16 -05:00
Alex Astashyn
949061079a
Merge upstream/develop into feature/locale_independent_num_to_str
2017-01-04 18:55:19 -05:00
Niels Lohmann
e1b89dd1d6
Merge branch 'develop' into feature/release_information
2017-01-04 20:06:23 +01:00
Niels Lohmann
cdd3b5a68c
🚑 fix for #416
2017-01-03 23:52:01 +01:00
Niels Lohmann
f8d640b185
👷 better support for OSS-Fuzz
2017-01-03 22:35:31 +01:00
Niels Lohmann
245a69d554
💄 ran clang-tidy
2017-01-03 21:33:23 +01:00
Niels Lohmann
ea4d71ee21
Merge branch 'develop' into feature/release_information
2017-01-02 17:26:00 +01:00
Niels Lohmann
8b46eb8ec0
📄 it's 2017 already
2017-01-02 09:40:00 +01:00
Niels Lohmann
60b3703c62
🔖 version bump to 2.0.10
2017-01-02 09:35:57 +01:00
Niels Lohmann
d173517212
💄 clean up
2017-01-02 09:21:26 +01:00
Niels Lohmann
a3063c2419
🚧 added target to build all fuzzers
2017-01-01 21:51:36 +01:00
Niels Lohmann
09b91406c6
🔀 merge pull request #410 from Daniel599/feature/clang_sanitize
...
Feature/clang sanitize
2017-01-01 19:45:11 +01:00
Niels Lohmann
cf9bf2d913
🚑 fix for #411 and #412
2017-01-01 15:28:01 +01:00
Daniel Cohen
ff3221a375
#394 fixed memory leak in unit-allocator, found by clang's fsanitize
2016-12-30 15:21:25 +02:00
Niels Lohmann
328eb55dc4
🚧 started working on #397
2016-12-30 14:02:51 +01:00
Niels Lohmann
d7029c37aa
✅ improved test coverage
2016-12-30 13:04:33 +01:00
Niels Lohmann
f0edab2363
🚑 fix for #408
2016-12-29 17:00:02 +01:00
Niels Lohmann
383a29a924
🚑 fix for #407
2016-12-29 16:14:15 +01:00
Niels Lohmann
871cebaf84
🚑 fix for #405
2016-12-29 15:39:16 +01:00
Niels Lohmann
1dd99d04b6
Merge branch 'develop' into feature/fuzzer
2016-12-28 12:19:12 +01:00
Niels Lohmann
888f5b9f60
🚚 renamed test files to allow windows build
2016-12-28 12:18:48 +01:00
Niels Lohmann
55be721615
Merge branch 'develop' into feature/fuzzer
2016-12-28 12:11:51 +01:00
Niels Lohmann
acb7e0558d
🚑 fixed bugs detected by AFL-Fuzz
2016-12-28 12:09:15 +01:00
Niels Lohmann
1399abc583
🚧 added MessagePack fuzz target
2016-12-25 16:18:56 +01:00
Niels Lohmann
6de9d4035a
🐛 fixed AFL driver to also read binary data
2016-12-25 16:06:56 +01:00
Niels Lohmann
33be4e7f1f
🚧 cleanup
2016-12-22 12:08:36 +01:00
Niels Lohmann
a084e90f39
🔨 split AFL test in driver and test file
2016-12-22 11:09:26 +01:00