Niels Lohmann
a9a4ff61c6
🚨 remove C4996 warnings #872
...
These were the remaining direct calls to alloc.
2017-12-13 17:01:39 +01:00
Niels Lohmann
8419bfbbd2
✅ improved test coverage
...
As we guarantee proper UTF-8 before, we do not need to cope with it later.
2017-12-12 20:44:57 +01:00
Niels Lohmann
569d275f65
💥 throwing an exception in case dump encounters a non-UTF-8 string #838
...
We had a lot of issues with failing roundtrips (i.e., parse errors from serializations) in case string were stored in the library that were not UTF-8 encoded. This PR adds an exception in this case.
2017-12-11 22:38:05 +01:00
Niels Lohmann
7de009edd1
✏️ fixing typos #869
2017-12-10 13:07:47 +01:00
Niels Lohmann
772bb3cc20
📝 fixing documentation #867
...
The example in the documentation on how to "force" an array of arrays was wrong since the first release. Fixed the documentation and added checks for the README unit tests.
2017-12-10 12:32:20 +01:00
Mike Bogdanov
64d6daa76e
iter_impl template conformance with C++17
2017-12-07 11:30:17 +03:00
Niels Lohmann
9e2f185ac6
💄 reformatted code after PRs
2017-12-06 22:21:11 +01:00
Mike Bogdanov
8890b935fd
fixed merge conflicts
2017-12-06 12:24:50 +03:00
Mike Bogdanov
daba1b6a0b
fixed conformance with C++17, some members of allocator are depricated and should be used via allocator_traits
2017-12-06 11:20:42 +03:00
Théo DELRIEU
c9a02cbc59
to/from_json: add a MSVC-specific static_assert to force a stacktrace
2017-12-05 10:52:55 +01:00
Niels Lohmann
cc937deaf6
🚑 the last commit contained a bug #821
2017-11-26 10:15:23 +01:00
Niels Lohmann
430f03512c
🚨 fixed some warnings #821
2017-11-25 22:06:18 +01:00
Niels Lohmann
5696660eba
🔨 another try to fix #714
...
adding std::ios_base::binary when opening all_unicode.json.cbor
2017-10-31 15:04:14 +01:00
Théo DELRIEU
4b46abf97c
add forwarding references to json_ref constructor
...
fixes #805
2017-10-28 14:22:57 +02:00
Niels Lohmann
8e067c0c3c
🔨 set bidirectional iterator tag #593
2017-10-28 09:41:35 +02:00
Niels Lohmann
61cc07ff38
📝 some documentation
2017-10-27 16:07:04 +02:00
Niels Lohmann
77f8e2f987
Merge pull request #795 from jseward/develop
...
Add transparent comparator and perfect forwarding support to find() and count()
2017-10-27 11:47:23 +02:00
Jamie Seward
992c836b30
Add missing spaces
2017-10-24 00:14:25 -07:00
Jamie Seward
715c98b404
Remove extra spaces
2017-10-24 00:06:22 -07:00
Jamie Seward
6c9a401ebc
Remove old non-perfect forwarding find and count
2017-10-24 00:01:56 -07:00
Jamie Seward
73b1629a15
Remove tabs for spaces
2017-10-23 23:45:39 -07:00
Jamie Seward
33c6511dd0
Remove JSON_HAS_STRING_VIEW
...
Instead implement @gregmarr's PR comments that perfect forwarding should be used. Also cleaned up cpp language standard detection.
2017-10-23 00:43:26 -07:00
Niels Lohmann
b0c380b0f8
📝 cleanup after the last PRs
2017-10-22 09:12:35 +02:00
Niels Lohmann
be4fba7baf
Merge branch 'develop' of https://github.com/nlohmann/json into develop
2017-10-22 08:53:46 +02:00
Niels Lohmann
f193427e91
🔨 some simplifications
2017-10-22 08:53:43 +02:00
Niels Lohmann
ef40673acb
Merge branch 'develop' into develop-simplify-istream
2017-10-22 08:52:15 +02:00
Jamie Seward
d468f8c4e6
Use consistent logic to determine if string_view exists
2017-10-21 16:36:05 -07:00
Jamie Seward
59cde1ad6e
Fix for _HAS_CXX17 == 0
...
Copied from solution to https://github.com/nlohmann/json/issues/464
2017-10-21 16:29:37 -07:00
Jamie Seward
1a66679929
Add string_view support
...
This avoids unnecessary string copies on often used
find().
2017-10-21 15:20:13 -07:00
Sonu Lohani
92da334862
Error : 'identifier "size_t" is undefined' in linux
2017-10-21 12:52:44 +05:30
Jamie Seward
917d9d8bc3
Fix Visual Studio 2017 warnings
2017-10-16 23:23:55 -07:00
Perry Kundert
a8cc7a1bc8
Consistently use std::char_traits int_type-->char conversion intrinsics
2017-10-16 08:06:10 -07:00
Jamie Seward
8ba7f69ab4
Fix whitespace
2017-10-16 00:49:59 -07:00
Jamie Seward
8a4af820c7
Fix warning C4706
2017-10-16 00:41:58 -07:00
Niels Lohmann
d300a8e268
🚨 fixed warnings #776
2017-10-13 08:46:29 +02:00
Perry Kundert
23440eb86e
Remove outdated commentary about the value of eof(), retain input type
...
o We assume the same character int_type as the unerlying std::istream
o There are no assumptions on the value of eof(), other than that it
will not be a valid unsigned char value.
o To retain performance, we do not allow swapping out the underlying
std::streambuf during our use of the std::istream for parsing.
2017-10-06 12:54:43 -07:00
Perry Kundert
45e1e3d48a
Revert some unnecessary member initializer changes.
2017-10-06 07:53:31 -07:00
Perry Kundert
5e480b56d8
Further simplify character type handling
2017-10-06 07:37:49 -07:00
Perry Kundert
1b43a45bec
Implement correct handling of std::streambuf int_type, eof()
...
o Make no assumptions about eof(), other than that it is somewhere
outside of the valid range of char_type.
2017-10-05 16:16:41 -07:00
Perry Kundert
184dab60e6
Accelerate access to underlying std::istream streambuf
2017-10-05 16:16:41 -07:00
Perry Kundert
f775922ca8
Specify initializers for yytest, token_string using initializer-lists
...
o We can retain -Weffc++ and specify default initializers by using
initializer lists. The risks are low (of additional non-conformat
compilers), because there is already one other such initialization
used in the code-base.
2017-10-05 16:16:41 -07:00
Perry Kundert
546e148b24
Further performance improvements, and corrections in get_token_string
...
o An (-'ve valued, typically -1) EOF must never be allowed in
token_string, as it be converted to 255 -- a legitimate value.
o Comparing against a specific eof() (-1, typically) is more costly than
detecting +'ve/-'ve. Since EOF is the only non-positive value allowed
we can use the simpler test.
o Removed unnecessary test for token_string size, as it is already
tested in the method, and must never occur in correct code; used an
assert instead.
2017-10-05 16:16:41 -07:00
Perry Kundert
8665e25942
Rename get_string to move_string to imply side-effect
2017-10-05 16:16:41 -07:00
Perry Kundert
e0d890cc23
Corrected unnnecessary const restriction on returned std::string
2017-10-05 16:16:41 -07:00
Perry Kundert
97a388802d
Improve performance by constructing yytext as a std::string
...
o Return its contents when necessary. In many cases, this avoids
construction of multiple copies of the yytext token. Exceeds
performance of current develop branch.
2017-10-05 16:15:46 -07:00
Perry Kundert
7c523338c5
Remove unnnecessary NUL termination of yytext (as it may contain NULs)
2017-10-05 16:01:41 -07:00
Perry Kundert
14ca1f6f09
Restore istream performance #764
...
o Use std::streambuf I/O instead of std::istream; does not maintain
(unused) istream flags.
o Further simplify get/unget handling.
o Restore original handling of NUL in input stream; ignored during
token_string escaping.
2017-10-05 16:01:41 -07:00
Perry Kundert
12efeadc2e
Further simplify istream handling; use native unget
2017-10-05 16:01:41 -07:00
Perry Kundert
90adf6ec20
Simplify get_token_string, unnecessary buffering, handle Byte Order Mark
2017-10-05 16:01:41 -07:00
Niels Lohmann
5cb6d7187d
🚨 fixing last warning in #755
2017-10-04 17:28:35 +02:00
Niels Lohmann
54bd1b5124
Merge branch 'develop' into feature/issue698
2017-10-03 17:23:05 +02:00
Niels Lohmann
7435d54e97
🔨 clean up
2017-10-02 23:06:41 +02:00
Niels Lohmann
4912231450
Merge branch 'develop' into feature/issue698
2017-10-02 18:25:25 +02:00
Niels Lohmann
b91805e1f0
🚨 removing a compiler warning #755
2017-10-02 18:11:36 +02:00
Niels Lohmann
f89f8b2d0b
Merge branch 'develop' into feature/issue698
2017-10-02 17:47:53 +02:00
Niels Lohmann
8be303d4fb
🏁 fixing a min() call for MSVC #762
2017-10-02 13:54:14 +02:00
Niels Lohmann
1df836ce40
⏪ removed call to std::signbit #761
2017-10-01 15:48:29 +02:00
Niels Lohmann
8af49d4be5
🚨 removing compiler warnings #755
2017-09-30 11:00:26 +02:00
Niels Lohmann
1a66527dca
📝 fixed documentation #745
2017-09-30 10:18:18 +02:00
Niels Lohmann
295d65ada7
Merge branch 'develop' into feature/issue698
2017-09-10 01:13:43 +02:00
Niels Lohmann
fcba9ec537
🔨 clean up
2017-09-10 01:12:03 +02:00
Niels Lohmann
31ce7e1e59
Merge branch 'develop' into feature/issue698
2017-09-09 11:05:20 +02:00
Niels Lohmann
c607b5c2ac
📝 improved documentation
2017-09-06 17:14:06 +02:00
Niels Lohmann
91e0032853
📝 improved documentation
2017-08-29 23:46:26 +02:00
Niels Lohmann
15e757c42b
🔨 trying to fix memory issue with valarray
2017-08-27 10:41:39 +02:00
Théo DELRIEU
bb1b4c934e
fix from_json implementation for pair/tuple
...
Introduced by 6e4910d5c5
Fixes #707
2017-08-23 10:05:43 +02:00
Niels Lohmann
0b5e8f859b
🔨 cleanup
...
Fixed some warning in Clion.
2017-08-23 00:42:15 +02:00
Niels Lohmann
9fd031b6f4
🐛 re-added support for std::valarray #702
2017-08-22 23:28:23 +02:00
Niels Lohmann
64ef100ebf
Revert " 💥 changed iterators to andom_access_iterator #593 "
...
This reverts commit c77a0be5f3
.
2017-08-20 20:44:44 +02:00
Niels Lohmann
c77a0be5f3
💥 changed iterators to andom_access_iterator #593
...
This commit changes the iterator category to andom_access_iterator and allows offsets and subscript operators for object iterators.
2017-08-16 21:35:22 +02:00
Niels Lohmann
aba8b58492
🔨 approach to un-break the changes for #462
2017-08-16 20:11:05 +02:00
Niels Lohmann
22b59693f1
💥 CBOR/MessagePack input must end with EOF #505
...
The CBOR and MessagePack parsers now expect the input to be read until the end. Unless the new parameter "strict" is set to false (it is true by default), an exception is raised if the parser ends prematurely. This is a breaking change as the parsers ignored unread input so far.
Furthermore, the offset/startIndex paramter introduced in #462 was removed as this behavior can be mimicked with an iterator range. For instance, instead of calling "from_cbor(vec, 5);", you can write "from_cbor({vec.begin()+5, vec.end()});".
2017-08-16 14:48:23 +02:00
Niels Lohmann
4391bf5615
Merge branch 'feature/update' into develop
2017-08-16 07:39:30 +02:00
Niels Lohmann
1e360bb32b
🔨 preparation for #505
...
Added a parameter to control whether parsing CBOR and MessagePack must completely consume the input.
2017-08-16 07:39:11 +02:00
Niels Lohmann
72afe53fa0
📝 updated documentation for update() function #661
2017-08-15 21:42:50 +02:00
Niels Lohmann
039e2f03bc
Merge branch 'develop' into feature/update
2017-08-15 19:54:22 +02:00
Niels Lohmann
08805f7f14
🔨 cleanup
2017-08-13 20:57:27 +02:00
Niels Lohmann
7d19aed567
🔨 cleanup
2017-08-13 19:02:58 +02:00
Niels Lohmann
6151b056eb
🔨 cleanup
2017-08-10 23:40:30 +02:00
Niels Lohmann
a46afd4008
Merge pull request #679 from traits/patch-1
...
Digraph warning
2017-08-10 11:39:13 +02:00
traits
54c67dcfec
Update json.hpp
2017-08-10 09:05:00 +02:00
WebProdPP
c9509ccf97
Update json.hpp
...
mistake
2017-08-09 16:13:43 +03:00
Kyle Thompson
4b55f0ebd6
To fix compilation issue for intel OSX compiler
...
o To prevent the compilation issue on OSX with the intel compiler suite. The
error was found with icpc version 15.0.3.187 where the "__clang_version__" was
not defined correctly, while "__clang__" was.
2017-08-08 18:43:03 -04:00
traits
ab44a50d98
Digraph warning
...
The original version can trigger a digraph-related warning in VS2015. Is this namespace construct a typo or something deliberate?
2017-08-07 14:23:48 +02:00
DmitryKuk
19437c15de
massage -> message
2017-08-05 10:43:08 +03:00
Niels Lohmann
d2c3592908
✅ added test cases for update #661
2017-08-02 22:44:58 +02:00
Niels Lohmann
d1e13d5128
🎉 first draft for #661
2017-08-02 22:12:41 +02:00
Niels Lohmann
0ea0d7d860
Merge pull request #674 from wincent/patch-1
...
Fix "not constraint" grammar in docs
2017-08-01 20:21:04 +02:00
Niels Lohmann
efdfd3aa5b
⚡ replaced by-value call #673
2017-08-01 19:37:25 +02:00
Greg Hurrell
391303521a
Fix "not constraint" grammar in docs
2017-08-01 08:56:28 -07:00
Niels Lohmann
e60002a1b3
🔨 fixed GCC warnings in #663
...
https://github.com/nlohmann/json/pull/663#issuecomment-318931884
2017-07-31 23:17:14 +02:00
Niels Lohmann
850d856aae
🔨 cleanup after #663
2017-07-30 20:30:05 +02:00
Niels Lohmann
3d67ec40a6
Merge branch 'develop' of https://github.com/nlohmann/json into develop
2017-07-30 20:01:35 +02:00
Niels Lohmann
85c768084b
🔨 using emplace
2017-07-30 20:01:31 +02:00
Niels Lohmann
aad55219f8
Merge branch 'develop' into move-construction
2017-07-30 19:49:24 +02:00
Niels Lohmann
96dd4ffa19
🔨 simplified a call
2017-07-30 18:30:34 +02:00
Niels Lohmann
7737a29518
🔨 small parser performance improvements
...
- replaced list of pairs by flat list in next_byte_in_range
- implemented early exit in case of parse errors
- reused memory for object keys
- direct calls to embedded objects/arrays for insertions
2017-07-30 13:25:36 +02:00
Niels Lohmann
c819a2d732
🔨 refactored some scanner internals
2017-07-28 19:18:50 +02:00
Niels Lohmann
5851daa576
✨ binary formats can be stored in std::string, std::ofstreams or std::ostringstream #477
2017-07-28 00:21:55 +02:00
Niels Lohmann
7d51214045
✨ implemented exception-free parser #458 #582
...
You can now pass a boolean "allow_exceptions" to the parse functions. If it is false, no exceptions are thrown in case of a parse error. Instead, parsing is stopped at the first error and a JSON value of type "discarded" (check with is_discarded()) is returned.
2017-07-27 20:33:11 +02:00