Niels Lohmann
4414f94cd5
🔨 using input/output adapters for CBOR and MessagePack
...
- You can now pass a reference to a vector to the to_cbor and to_msgpack functions. The output will be written (appended) to the vector. #476
- You can now pass an output stream with uint8_t character type to the to_cbor and to_msgpack functions. #477
- You can now read from uint8_t */size in the to_cbor and to_msgpack functions. An input adapter will be created from this pair, so you need to use braces. #478
2017-07-23 23:02:24 +02:00
Nikita Ofitserov
f5cae64e52
Update tests while fixing possible UB
...
std::initializer_list does not own the temporaries created in
its initialization. Therefore, storing it in an independent
stack variable is unsafe.
2017-07-23 23:59:34 +03:00
Nikita Ofitserov
09cda57309
Support moving from rvalues in an std::initializer_list
...
This commit works around an issue in std::initializer_list design.
By using a detail::json_ref proxy with a mutable value inside,
rvalue-ness of an input to list initializer is remembered and
used later to move from the proxy instead of copying.
2017-07-23 23:57:17 +03:00
Nikita Ofitserov
cf3ca3b78c
Optimize json construction from rvalue string_t/array_t/object_t
2017-07-23 23:50:59 +03:00
Nikita Ofitserov
7b3cbfff23
Add some tests for std::move from std::initializer_list
2017-07-23 23:47:15 +03:00
Niels Lohmann
9b1c058810
🔨 reorganized interfaces for parse/accept functions #623
...
We now rely on implicit conversions to an input_adapter object in the parse/accept functions.
2017-07-23 18:11:34 +02:00
Niels Lohmann
18e0430bfe
🔨 adding destroy function to discard values
2017-07-22 22:57:22 +02:00
Niels Lohmann
5b5f0090a1
🔨 trying to fix the sanitizer error
...
Travis found an error with Clang 3.8's sanitizers, see https://travis-ci.org/nlohmann/json/jobs/256366699 . Unfortunately, I cannot reproduce this error with clang version 6.0.0 (trunk 308825) locally. However, this seems to be an issue, because so far, we did not reset a value after moving from it.
2017-07-22 16:41:42 +02:00
Niels Lohmann
d53ef95067
🔨 fixed some warnings
2017-07-22 15:33:31 +02:00
Niels Lohmann
c7a69ae03e
⚡ started working on parser with provded result reference #418
...
Internally, the parser now writes its result into a JSON value provided as a reference. To be usable, the public interfaces need to be extended.
2017-07-22 15:18:38 +02:00
Niels Lohmann
f513c46749
🔨 further cleanup
2017-07-22 13:35:04 +02:00
Niels Lohmann
024fec8a9b
🔨 more cleanup using clang-tidy
2017-07-21 18:26:07 +02:00
Niels Lohmann
a09193e967
🔨 cleanup
...
- Replaced codepoint calculation by bit operations.
- Fixed several clang-tidy warnings.
2017-07-20 23:01:16 +02:00
Niels Lohmann
21d23982ca
🐛 fix for #656
...
A complete rewrite of the string escape function. It now provides codepoint-to-\uxxxx escaping. Invalid UTF-8 byte sequences are not escaped, but copied as-is. I haven’t spent much time optimizing the code - but the library now agrees with Python on every single Unicode character’s escaping (see file test/data/json_nlohmann_tests/all_unicode_ascii.json).
Other minor changes: replaced "size_t" by "std::size_t"
2017-07-17 07:53:02 +02:00
Niels Lohmann
8a9133c6b2
Merge pull request #652 from olegendo/develop
...
Rename BuildTests to JSON_BuildTests
2017-07-15 11:39:27 +02:00
Niels Lohmann
f1fabd1ba2
📄 added code of conduct
...
added Contributor Covenant Code of Conduct
2017-07-13 19:16:41 +02:00
Niels Lohmann
dad4916f9e
Merge pull request #654 from ryanjmulder/develop
...
add ensure_ascii parameter to dump. #330
2017-07-12 07:58:45 +02:00
Ryan Mulder
486f3a2d16
restore necessary comman in documentation of dump
2017-07-11 14:18:02 -04:00
Ryan Mulder
40461c6c55
update comment on dump to not indicate that ensure_ascii is true by default
2017-07-11 13:59:07 -04:00
Ryan Mulder
71597be294
add ensure_ascii parameter to dump. #330
2017-07-11 13:48:08 -04:00
Oleg Endo
cd800522e4
Rename BuildTests to JSON_BuildTests
...
This avoids potential conflicts with other libraries when the library is
built from source and included in a bigger cmake build.
2017-07-11 22:57:49 +09:00
Niels Lohmann
7dee868a42
Merge pull request #643 from theodelrieu/refacto/split_basic_json
...
Refacto/split basic json
2017-07-09 23:12:35 +02:00
Théo DELRIEU
8585d35c92
move serializer outside of basic_json
2017-07-09 21:30:34 +02:00
Théo DELRIEU
acff23efb2
move binary_{reader,writer} outside of basic_json
2017-07-09 21:30:33 +02:00
Théo DELRIEU
bb752fd30c
move json_reverse_iterator outside of basic_json
2017-07-09 21:30:33 +02:00
Théo DELRIEU
0ba98b6fe0
move internal_iterator/iter_impl/iteration_proxy outside of basic_json
2017-07-09 21:30:31 +02:00
Théo DELRIEU
00d6e27194
move primitive_iterator outside of basic_json
2017-07-09 21:22:16 +02:00
Théo DELRIEU
8e681d1e57
move lexer/parser outside of basic_json
2017-07-09 21:22:15 +02:00
Théo DELRIEU
15625ca4a7
move input adapters outside of basic_json
2017-07-09 21:21:12 +02:00
Théo DELRIEU
a332142194
move json_pointer outside of basic_json
2017-07-09 21:21:09 +02:00
Théo DELRIEU
fe086d7432
forward declare basic_json, add two macros
...
Those macros are used to reduce template argument boilerplate
2017-07-09 16:16:42 +02:00
Niels Lohmann
d3496347fc
👷 removing Clang 3.9 and 4.0
...
These versions are still not working properly: https://travis-ci.org/nlohmann/json/jobs/251675281
2017-07-09 12:19:14 +02:00
Niels Lohmann
504012a3db
📝 cleanup after #650
...
As <iostream> is not included in json.hpp any more, all code examples need to include <iostream> now.
2017-07-09 11:51:38 +02:00
Niels Lohmann
a0e0579374
Merge pull request #650 from olegendo/develop
...
Don't include <iostream>, use std::make_shared
2017-07-09 11:12:46 +02:00
Niels Lohmann
1b2fabe802
👷 adding two recent Clang versions
...
Maybe the simple approach is working now - at least it is in https://github.com/taocpp/PEGTL/blob/master/.travis.yml
2017-07-09 11:10:18 +02:00
Oleg Endo
e3bb156f82
fix typo
2017-07-09 15:20:28 +09:00
Oleg Endo
b753cb6ee7
use std::make_shared
2017-07-09 15:19:08 +09:00
Oleg Endo
f0ca96d462
include <iosfwd> instead of <iostream>
...
avoid bloat caused by <iostream> and std::cout and friends in apps where
iostream are not used.
2017-07-09 15:04:49 +09:00
Niels Lohmann
f1c543cb7b
👷 added GCC7
2017-07-08 22:59:19 +02:00
Niels Lohmann
7b05e1a687
🔨 improved performance in dump for deeply nested values
2017-07-08 22:59:04 +02:00
Niels Lohmann
f697fec522
📝 fixed documentation
...
There was an issue in the documentation example before. Unfortunately, I did not recreate the example outputs.
2017-07-08 22:16:45 +02:00
Niels Lohmann
87bccbc335
🔨 removed exception parse_error.111
...
It makes no sense to have this special exception. Instead of throwing when an input adapter is created, it is better to detect a parse error in later usage when an EOF is "read" unexpectedly.
2017-07-08 21:35:13 +02:00
Niels Lohmann
b38ecb5ca9
🔨 simplified binary write
...
Also added some comments and improved the documentation.
2017-07-08 20:31:13 +02:00
Niels Lohmann
b3ac36db93
🔨 excluded uncovered lines
...
These breaks were just added to silence a GCC warning - the GCC is right about warning as it cannot know that the expect function will not return in these two scenarios.
2017-07-08 18:34:08 +02:00
Niels Lohmann
e67df7c385
Merge branch 'feature/undo_171' into develop
2017-07-08 16:34:00 +02:00
Niels Lohmann
552622343e
📝 fixed typos
2017-07-08 16:18:27 +02:00
Niels Lohmann
566f6dcf30
🔥 removing usused functions #645
...
It seems these functions are not required any more. The code was added in commit 7e32457
to fix issue #171 . There are still regression tests for #171 , so when this commit passes the CI, the functions may be removed for good.
2017-07-08 13:33:13 +02:00
Niels Lohmann
6f12749ef6
📝 added version string for Xcode 9
2017-07-08 12:55:05 +02:00
Niels Lohmann
ac42333749
⬆️ Catch v1.9.6
2017-07-08 12:11:45 +02:00
Niels Lohmann
015c88783e
🔨 fixed a pedantic warning
2017-07-08 12:03:12 +02:00