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
4b9c2f1287
🔨 added __EXCEPTIONS to the list
2017-03-11 20:16:13 +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
122afbf128
🔨 added defined() check
2017-03-11 18:43:21 +01:00
Niels Lohmann
e3e6cbecc7
🏁 added check for _CPPUNWIND
...
MSVC does not define __cpp_exceptions, but seems to use _CPPUNWIND when
exception support is switched on, see
https://msdn.microsoft.com/en-us/library/b0084kay.aspx .
2017-03-11 17:59:24 +01:00
Niels Lohmann
65dfc97d40
🔨 using __cpp_exceptions to detect exception support #498
...
I used __EXCEPTIONS to detect whether exceptions are supported.
Apparently, this is a macro that is only used by libstdc++
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64276 ). It’s much cleaner
to use __cpp_exceptions as it is in the standard since C++98.
Note that compiling the unit-tests with “-fno-exceptions” still does
not work, because Catch uses throw internally. However, the library’s
exceptions can be switched off by defining JSON_NOEXCEPTION.
2017-03-11 17:44:54 +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
d9e2dd03bf
🔨 fixed interface for to_json function
2017-03-11 15:46:52 +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
70bbf19527
Fix -Weffc++ warnings (GNU 6.3.1)
2017-03-11 15:16:26 +01:00
Ted Lyngmo
5b809b9737
Fix -Weffc++ warnings (GNU 6.3.1)
2017-03-11 15:05:21 +01:00
Ted Lyngmo
9cfb777b65
Fix -Weffc++ warnings (GNU 6.3.1)
2017-03-11 13:56:38 +01:00
Niels Lohmann
0f6b8aa718
📝 more documentation for the new exceptions
2017-03-08 23:30:38 +01:00
Niels Lohmann
1ab580d6e9
📝 more documentation for the new exceptions
2017-03-08 23:12:13 +01:00
Niels Lohmann
fe71e7df1f
📝 overworked documentation
...
Replacing references to std exceptions with user-defined exceptions.
Also changed some examples to the new exceptions.
2017-03-08 21:03:19 +01:00
Niels Lohmann
9374eaa013
🔨 added user-defined exception 501
2017-03-08 19:16:53 +01:00
Niels Lohmann
fc9b528ec9
🔨 changed an exception
2017-03-08 18:07:21 +01:00
Niels Lohmann
625cf7e3f7
🔨 added user-defined exception 112
2017-03-07 20:05:34 +01:00
Niels Lohmann
757d2c6c7a
🔨 replaced at() calls in msgpack/cbor
2017-03-06 23:45:08 +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
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
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
059f21aada
💄 fixed a warning
...
snprintf returns an int, but we later assign it a difference_type which
is usually a long.
2017-02-28 17:24:03 +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
fc48b8ac2b
🐛 fixed a logical error
...
Treated the size of the range as the number of thousand separators.
This logical error yielded a negative value for written_bytes and
eventually an infinite loop, as written_bytes was converted to an
unsigned value.
2017-02-28 11:45:38 +01:00
Niels Lohmann
af070744ae
🔨 integrating numtostr into serializer class
...
By merging numtostr into serializer, we can write directly to the
output stream. As a consequence, all stream calls are now unformatted.
2017-02-27 22:10:57 +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
9c4919ff34
⏪ " ⚡ micro-optimizations for dump()"
...
This reverts commit 909b439b03
.
For some strange reason, the test suite crashes when compiled
with GCC.
2017-02-27 16:19:07 +01:00
Niels Lohmann
909b439b03
⚡ micro-optimizations for dump()
...
numtostr now directly writes to a stream. Return value of snprintf is
reused to avoid finding end of string. Cachegrind suggests a 1%
performance increase.
2017-02-27 14:58:10 +01:00
Niels Lohmann
0f04e42dd5
⚡ micro-optimizations for dump()
...
All ‘<<‘ calls have been replaced by write()/put() calls. The
indentation strings needs not to be resized. Cachegrind measures 1%
performance improvement.
2017-02-27 01:22:24 +01:00
Niels Lohmann
b1441f3485
⚡ micro-optimizations for dump()
...
Indentation string is recycled to avoid allocations. Comma-separation
in objects does not need an if any more. Cachegrind measures 1%
performance improvement.
2017-02-26 20:58:00 +01:00
Niels Lohmann
bd0326cbc1
⚡ micro-optimizations for dump()
...
Added separate code paths for normal output and pritty-printed output.
This allowed to remove most of the ifs along the way. Benchmarks and
cachegrind suggest a 10% performance improvement.
2017-02-26 16:55:54 +01:00
Niels Lohmann
ae155c4734
💄 cleanup
2017-02-26 14:45:41 +01:00
Niels Lohmann
f1cd15ce7e
⚡ avoid copying a string
2017-02-26 11:22:18 +01:00
Niels Lohmann
27c65b860b
🔖 version 2.1.1
2017-02-25 16:34:38 +01:00
Niels Lohmann
8cec55a271
🚧 fixed more warnings
2017-02-22 18:14:29 +01:00
Niels Lohmann
345a106d73
💄 cleanup
2017-02-22 16:56:56 +01:00
Niels Lohmann
967f9144d4
🚧 overworked fix for #465
2017-02-21 19:11:34 +01:00
Niels Lohmann
7d14f167b8
🚑 fix for #465
2017-02-20 22:48:27 +01:00
Niels Lohmann
f7075be93a
🐛 reverted change for #464
2017-02-20 18:15:50 +01:00
Niels Lohmann
f2dfa09aec
🐛 fix for #464
2017-02-20 18:05:52 +01:00
Niels Lohmann
83a9c60dbd
🔨 refactored code to avoid using strcpy/strlen/strcat ( #463 )
2017-02-20 17:37:34 +01:00
Niels Lohmann
716485a965
🚧 removed decay ( #448 )
2017-02-20 16:27:16 +01:00
Niels Lohmann
7a4a16a7db
💄 updated header list
2017-02-20 16:20:45 +01:00
Niels Lohmann
1f72c38861
🚑 fix for #448
2017-02-19 21:26:53 +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
Niels Lohmann
5b53f03e7c
Merge branch 'develop' into TurpentineDistillery-feature/locale_independent_num_to_str
2017-02-19 19:24:55 +01:00
Niels Lohmann
9a9d0ba3df
🚧 fixing warning C4293 ( #453 )
2017-02-19 17:47:20 +01:00
Niels Lohmann
d1479e47bb
💄 added assertion message
2017-02-18 11:01:03 +01:00
Niels Lohmann
513eb3ab5f
🚧 clean up
2017-02-18 11:00:18 +01:00
Niels Lohmann
0200f2dc62
🚧 fixing warning C4267 ( #453 )
2017-02-17 19:14:21 +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
2c17c1b1b2
💄 cleanup
2017-02-16 08:01:01 +01:00
Niels Lohmann
973402c11e
🚧 replaced throws ( #440 ) and _MAX/_MIN macros ( #451 )
2017-02-15 22:44:18 +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
265c5b5207
🔨 more work on the number parser
2017-02-13 18:51:23 +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
9f5dccbab5
💄 cleanup
2017-02-11 15:55:53 +01:00
Niels Lohmann
926af6d50b
🔀 merge branch 'develop' into TurpentineDistillery-feature/locale_independent_str_to_num
2017-02-11 15:17:47 +01:00
Niels Lohmann
662a9b8f3c
✏️ fixed more typos
2017-02-08 18:19:41 +01:00
Niels Lohmann
4746a4c536
💄 minor change
2017-02-08 17:56:43 +01:00
Niels Lohmann
8d88a1da2a
🔀 merged #379 and fixed conflicts
2017-02-05 13:13:41 +01:00
Niels Lohmann
c75865d88c
🐛 fixed -Weffc++
warnings
2017-02-01 15:13:21 +01:00
Niels Lohmann
b210f2dbf4
💄 minor refactoring
2017-01-29 21:40:37 +01:00
Niels Lohmann
38e4935db0
📝 added example and documentation for the meta function
2017-01-28 17:12:29 +01:00
Niels Lohmann
cdde1a9436
🔖 set version to 2.1.0
2017-01-28 16:46:03 +01:00
Niels Lohmann
d870826811
🔖 set version to 2.1.0
2017-01-28 16:03:35 +01:00
Niels Lohmann
cd9701b123
💄 cleanup
2017-01-26 20:51:30 +01:00
Niels Lohmann
77bb7af5d9
📝 added more documentation
2017-01-26 07:29:37 +01:00
Niels Lohmann
4d3053cd42
💄 some cleanup
2017-01-25 22:21:07 +01:00