Update dependency nlohmann_json to v3.11.3 #6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v3.10.5
->v3.11.3
Release Notes
nlohmann/json (nlohmann_json)
v3.11.3
: JSON for Modern C++ version 3.11.3Compare Source
Release date: 2023-11-28
SHA-256: 9bea4c8066ef4a1c206b2be5a36302f8926f7fdc6087af5d20b417d0cf103ea6 (json.hpp), a22461d13119ac5c78f205d3df1db13403e58ce1bb1794edc9313677313f4a9d (include.zip), d6c65aca6b1ed68e7a182f4757257b107ae403032760ed6ef121c9d55e81757d (json.tar.xz)
Summary
This release fixes some bugs found in the 3.11.2 release.
All changes are backward-compatible.
💰 Note you can support this project via GitHub sponsors or PayPal.
✨ New Features
nlohmann::json
. This class serves as an extension point and allows to add functionality to json node. Examples for such functionality might be metadata or additional member functions (e.g., visitors) or other application specific code. By default the parameter is set tovoid
and an empty base class is used. In this case the library behaves as it already did. #3110NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE
andNLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE
). #3816http_archive
orgit_repository
and depend on@nlohmann_json//:json
. #3709🐛 Bug Fixes
NEW
CMake policies up to CMake 3.14. This fixes a nasty deprecation warning that "Compatibility with CMake < 3.5 will be removed from a future version of CMake". #4076 #4112CMAKE_INSTALL_INCLUDEDIR
. #4194<numeric>
header include. #3717 #3718 #3719INT_MIN
/INT_MAX
, etc. withstd::numeric_limits
and consistently usestd
-namespaced integer types to make library work with newer GCC versions. #3722 #3723json_fwd.hpp
and Bazel build files) to release artifactinclude.zip
. #3727 #3728rebind
type. #3895 #3927adl_serializer::to_json
#3881 #3901size_type
is notint
. #4140_json
preceded by whitespace in a literal operator declaration". #4129 #4161_HAS_STATIC_RTTI=0
. #4046char_traits<unsigned char>
is deprecated:char_traits<T>
forT
not equal tochar
,wchar_t
,char8_t
,char16_t
orchar32_t
is non-standard". #4163 #4179🔨 Further Changes
CI
Documentation
CONTRIBUTING.md
thatmake pretty
is required for test updates. #4045const&
in docs. #4099Tests
std::ranges::equals
for range comparisons in test case. #3927 #3950unit-algorithm.cpp
. #4044🔥 Deprecated functions
This release does not deprecate any function. See the migration guide for help adjusting your code for future versions.
The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):
iterator_wrapper
is deprecated. Please use the member functionitems()
instead.friend std::istream& operator<<(basic_json&, std::istream&)
andfriend std::ostream& operator>>(const basic_json&, std::ostream&)
are deprecated. Please usefriend std::istream& operator>>(std::istream&, basic_json&)
andfriend operator<<(std::ostream&, const basic_json&)
instead.basic_json::parse
,basic_json::accept
,basic_json::sax_parse
,basic_json::from_cbor
,basic_json::from_msgpack
,basic_json::from_ubjson
,basic_json::from_bson
) via initializer lists is deprecated. Instead, pass two iterators; for instance, callbasic_json::from_cbor(ptr, ptr+len)
instead ofbasic_json::from_cbor({ptr, len})
.json_pointer::operator string_t
) is deprecated. Usejson_pointer::to_string
instead.operator==
andoperator!=
have been deprecated. To compare ajson_pointer
p
with a strings
, converts
to ajson_pointer
first and usejson_pointer::operator==
orjson_pointer::operator!=
. #3684All deprecations are annotated with
HEDLEY_DEPRECATED_FOR
to report which function to use instead.v3.11.2
: JSON for Modern C++ version 3.11.2Compare Source
Release date: 2022-08-12
SHA-256: 665fa14b8af3837966949e8eb0052d583e2ac105d3438baba9951785512cf921 (json.hpp), e5c7a9f49a16814be27e4ed0ee900ecd0092bfb7dbfca65b5a421b774dccaaed (include.zip), 8c4b26bf4b422252e13f332bc5e388ec0ab5c3443d24399acb675e68278d341f (json.tar.xz)
Summary
This release fixes some bugs found in the 3.11.1 release. Furthermore, the of the namespace library has been re-structured.
All changes are backward-compatible.
💰 Note you can support this project via GitHub sponsors or PayPal.
🐛 Bug Fixes
value
function which was broken for strings, size types, andnullptr
in release 3.11.0. #3652 #3655 #3663json_fwd.hpp
header to be self-contained and add it to the single-header release. #3656 #3679 #3687json_pointer
as key in associative containers. #3680 #3685contains
andat
. #3658 #3681json_pointer
and strings with==
and!=
. These comparisons worked in 3.10.5, but were broken in 3.11.0 and 3.11.1. #3654 #3664to_json
conversion ofstd::vector<bool>::reference
andstd::vector<bool>::const_reference
for STLs where these are the same asbasic_json::boolean_t&
andbasic_json::boolean_t
, respectively. #3677 #3678⚡ Improvements
🔨 Further Changes
Documentation
develop
branch. #3660 #3673json_pointer
documentation. #3692Community
CI
macos-10.15
image from the CI as it is removed by GitHub Actions. #3612 #3615 #3626🔥 Deprecated functions
operator==
andoperator!=
. To compare ajson_pointer
p
with a strings
, converts
to ajson_pointer
first and usejson_pointer::operator==
orjson_pointer::operator!=
. #3684The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):
iterator_wrapper
is deprecated. Please use the member functionitems()
instead.friend std::istream& operator<<(basic_json&, std::istream&)
andfriend std::ostream& operator>>(const basic_json&, std::ostream&)
are deprecated. Please usefriend std::istream& operator>>(std::istream&, basic_json&)
andfriend operator<<(std::ostream&, const basic_json&)
instead.basic_json::parse
,basic_json::accept
,basic_json::sax_parse
,basic_json::from_cbor
,basic_json::from_msgpack
,basic_json::from_ubjson
,basic_json::from_bson
) via initializer lists is deprecated. Instead, pass two iterators; for instance, callbasic_json::from_cbor(ptr, ptr+len)
instead ofbasic_json::from_cbor({ptr, len})
.json_pointer::operator string_t
) is deprecated. Usejson_pointer::to_string
instead.All deprecations are annotated with
HEDLEY_DEPRECATED_FOR
to report which function to use instead.v3.11.1
Compare Source
Full Changelog
Regression: no matching literal operator for call to 'operator""_json' #3645
_json operator""() #3644
Fix global UDLs #3646 (falbrechtskirchinger)
v3.11.0
Compare Source
Full Changelog
ICPC: warning #1098: the qualifier on this friend declaration is ignored #3632
Starting with 3.10.4, just adding
\#include json.hpp
causes compile error: `overload resolution selected deleted operator '=' #3620xwidgets doesn't compile with version >3.10.3 #3602
json_pointer__pop_back.cpp example does not compile #3600
nlohmann::json::array 'push_back' is ambiguous #3589
Multiple versions causing conflict #3588
ERROR: ThreadSanitizer: SEGV on unknown address #3584
unicode4 test consistently fails on RISC-V hardware #3579
sax_parse(iterator, json_sax_t *) string callback clobbers spaces #3574
Nlohmann JSON Parse crash with raylib-cpp #3570
ordered_json doesn't accept keys of types other than string_t (e.g., string_view) #3558
turning an object into an array #3547
json:parse_bjdata_fuzzer: ASSERT: ref_stack.back()->is_array() #3541
Warning about potential null dereference in GCC 12.1 (Fedora 36) #3525
Enable 32bit unit test in CI #3524
Error when roundtripping BJData #3519
ASSERT error while parsing BJData #3513
An exception occurred when sending a string with double quotes #3504
Binary reader for BJData creates incorrect SAX events #3503
It can't support "nan", "inf", "-inf" for float type #3494
ASAN error while parsing BJData (Heap-buffer-overflow READ 1) #3492
UBSAN error while parsing BJData (Null-dereference) #3491
UBSAN error while parsing BJData (Invalid-bool-value) #3490
json:parse_bjdata_fuzzer reaches assertion #3475
Compilation with -fmodules-ts and use inside of a module #3472
json.exception.parse_error.101 only occurs outside of IDE #3467
json:parse_bjdata_fuzzer reaches assertion #3461
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT can not parse { "key" : null} #3458
Unable to compile when using Microsoft's _CRTDBG #3457
Compilation errors when including
<filesystem>
and using--std=c++17
or above (MinGW/Win10) #3449Weird things on for statement #3447
Parsing error when there is a json string within a Json #3445
ordered_json vs json types comparison #3443
Error occurred when converting nlohmann::json to std::any #3428
I was forced to report an assertion error when copying an array of strings #3419
About Serialization Error invalid UTF-8 byte at index #3414
Comparison of NaN differs between json and float #3409
when i use it in C++ sserver,it it constantly show that fatal error: adl_serializer.hpp: No such file or directory #3404
parse error #3403
CMake script MAIN_PROJECT always OFF #3390
Parser unable to handle large floating point numbers #3389
Compilation error if json_pointer is used with alternative string type #3388
Unit tests conversions & items fail to build (Clang <4.0/C++14 only) #3384
Regression test for #3070 is not being run and fails when enabled #3377
Refactor unit tests to use more convenient doctest assertion macros #3365
An json.h issue reported in a static code analyzer #3361
Mixing different JSON_DIAGNOSTICS settings in separately compiled units leads to core #3360
json::out_of_range exception matches against lot of others while testing #3352
use mipsel-openwrt-linux-g++ -std=c++11 to compile, it has some errors "error: 'snprintf' is not a member of 'std'" #3349
Add proper issue templates #3348
switch from json to ordered_json #3343
Json dump use to compilation errors #3339
Ambiguous conversion from nlohmann::basic_json<> to custom class. #3333
Iterator doesn't satisfy std::incrementable because post-increment may change constness #3331
Inconsistent handling of floating point numbers after parse() #3329
Documentation for
ordered_json
should show proper use of theparse()
function. #3325"type must be boolean, but is object" error thrown on non-boolean object #3319
Incomplete Type in request parms #3318
小米 MIX4 MIUI13 bug #3316
json.exception.parse_error.101 when parsing data received over a socket #3313
Parse to custom class from unordered_json breaks on G++11.2.0 with C++20 #3312
try to assign dumped string to a class member varible #3300
includedir in pkgconfig is error if install_headers() has subdir argument. #3284
SHA-256 sum of json-3.10.5.tar.xz changes over time (but not the content itself) #3281
items() method does not follow order of json message #3278
Perplexing template deduction failure serialising a 3rd party type using base class #3267
json.hpp 'isfinite' is not a member of 'std' also isinf; snprintf; stoull and to_string members of std #3263
JSON build fails for C++ cmake #3256
Unexpected implicit conversion #3254
Add a function that checks for valid json in a C++ string #3245
Replace use of standard IO from error handling #3239
Use Catch for unit tests #3232
Exception thrown during initialization causes a memory leak #3215
Tests failing when compiling with c++20 #3207
ambiguous regression #3204
Deserialization: if class is_constructible from std::string wrong from_json overload is being selected, compilation failed #3171
'clang++ ./json.hpp' with no usage: Compiler syntax problem in clang 3.7.0 (tizen :/ ) #3153
build failure on upcoming gcc-12: test/src/unit-regression1.cpp:392:22: error: ambiguous overload for 'operator=' #3138
Applying JSON patch creates parent object #3134
Iterators cannot be used with range-v3 #3130
std::shared_ptr<T> == nlohmann::json compiles, which seem undesirable #3026
Error in test\download_test_data.vcxproj custom build step when compiling with Visual Studio 2019 16.7.7 msbuild on Windows 10 #2593
Consider putting the user-defined literals in a namespace #1682
Using versioned namespaces #1539
How can I use std::string_view as the json_key to "operator []" ? #1529
serialize std::variant<...> #1261
Prepare 3.11.0 release #3635 (nlohmann)
Fix warning #3634 (nlohmann)
Add license header to new files #3633 (nlohmann)
Add a unit test including windows.h #3631 (falbrechtskirchinger)
Fixed latest build error in msvc platform #3630 (KsaNL)
Add regression tests for #3204 and #3333 #3629 (falbrechtskirchinger)
Fix patch::add creating nonexistent parents #3628 (falbrechtskirchinger)
Adjust JSON Pointer examples #3622 (nlohmann)
Disable exceptions on ICPC #3621 (falbrechtskirchinger)
build: install .pc and .cmake files to share/ #3619 (Tachi107)
Fix MinGW CI failures #3618 (falbrechtskirchinger)
Fix Unicode test timeout (for real this time!) #3614 (falbrechtskirchinger)
Use 'concurrency' in GitHub workflows #3610 (falbrechtskirchinger)
Use swap() by ADL #3609 (falbrechtskirchinger)
Move UDLs out of the global namespace #3605 (falbrechtskirchinger)
Re-add value_type detection to distinguish string types #3604 (falbrechtskirchinger)
Add operator<<(json_pointer) #3601 (falbrechtskirchinger)
Add documentation for comparing json and ordered_json #3599 (nlohmann)
Clean up after #3581 #3596 (nlohmann)
Add assertion if nullptr is passed to parse function #3593 (nlohmann)
Minor documentation fixes #3592 (nlohmann)
Add versioned, ABI-tagged inline namespace and namespace macros #3590 (falbrechtskirchinger)
Add badge for https://repology.org/project/nlohmann-json/versions #3586 (nlohmann)
Add error message if test suite cannot be found #3585 (nlohmann)
add patch_inplace function #3581 (wolfv)
Enable overriding test properties and set Unicode test timeouts #3580 (falbrechtskirchinger)
Ignore output directory #3572 (NN---)
Optimize output vector adapter write #3569 (romainreignier)
Add overloads for more key types to ordered_map and fix ordered_map::erase(first, last) with first == last #3564 (falbrechtskirchinger)
Make certain usage patterns more prominent in the README #3557 (jez)
CI: fix "JSON_MultipleHeaders" option spelling #3555 (karzhenkov)
More documentation updates for 3.11.0 #3553 (falbrechtskirchinger)
Use DOCTEST_* compiler macros and suppress pragmas warning #3550 (falbrechtskirchinger)
Add unit test to make sure iterator_input_adapter advances iterators correctly #3548 (falbrechtskirchinger)
Use REUSE framework #3546 (nlohmann)
Use
std::iterator_traits
to extractiterator_category
#3544 (Mike-Leo-Smith)BJData dimension length can not be string_t::npos, fix #3541 #3543 (fangq)
Allow disabling default enum conversions #3536 (zxey)
Add to_json() for std::vector<bool>::reference #3534 (falbrechtskirchinger)
CI: Enable 32bit unit test (3) #3532 (falbrechtskirchinger)
Use new CI image #3528 (nlohmann)
Fix ndarray dimension signedness, fix ndarray length overflow (2); add 32bit unit test #3523 (falbrechtskirchinger)
Small documentation fixes #3520 (nlohmann)
Add assertion to converting constructor #3517 (falbrechtskirchinger)
CI: Remove -Wstrict-overflow #3516 (falbrechtskirchinger)
Fix #3513, explain is_ndarray flag #3514 (fangq)
Prevent ndarray size vector from recursive use, fix #3503 #3505 (fangq)
prevent ndarray dimension vector from recusive array, #3500 #3502 (fangq)
Discard optimized containers with negative counts in UBJSON/BJData (#3491,#3492,#3490) #3500 (fangq)
Update json.hpp #3499 (ivanovmp)
Add assertion for invariant in SAX-DOM parser #3498 (nlohmann)
Add more macOS builders #3485 (nlohmann)
change bjdata ndarray flag to detect negative size, as part of #3475 #3479 (fangq)
Document fuzzer usage #3478 (nlohmann)
Add build step for ICPC (with fixes) #3465 (falbrechtskirchinger)
Complete documentation for 3.11.0 #3464 (nlohmann)
Handle invalid BJData optimized type, fix #3461 #3463 (fangq)
Reorganize directories #3462 (nlohmann)
Enable rapid testing and development on Compiler Explorer #3456 (falbrechtskirchinger)
cpplint 1.6.0 #3454 (nlohmann)
Disable regression test for #3070 on GCC <8.4 #3451 (falbrechtskirchinger)
Fix C++20/gcc-12 issues (Part 2) #3446 (falbrechtskirchinger)
Overwork documentation #3444 (nlohmann)
Fix typo in basic_json documentation #3439 (jhnlee)
Exclude std::any from implicit conversion (fixes #3428) #3437 (falbrechtskirchinger)
Document which version introduced the macros #3431 (nlohmann)
Fix constraints on from_json() for strings (fixes #3171, #3267, #3312, #3384) #3427 (falbrechtskirchinger)
at.md: fix typo #3426 (heinemml)
Implement support for string_view (attempt no. 3) #3423 (falbrechtskirchinger)
CI: speedup AppVeyor builds by ~30% #3422 (falbrechtskirchinger)
Restore disabled check for #3070 (except on MSVC) #3421 (falbrechtskirchinger)
Update CI image #3420 (nlohmann)
Add check if different version is also included #3418 (nlohmann)
Report the right __cplusplus value for MSVC in basic_json meta() #3417 (flagarde)
CI: windows-2016 has been deprecated; remove jobs #3416 (falbrechtskirchinger)
Re-template json_pointer on string type #3415 (falbrechtskirchinger)
Refactor unit tests to use more convenient doctest assertion macros (Part 2) #3405 (kkarbowiak)
Refactor unit tests to use more convenient doctest assertion macros #3393 (kkarbowiak)
Improve unit testing (Part 1) #3380 (falbrechtskirchinger)
Fix C++20/gcc-12 issues (Part 1) #3379 (falbrechtskirchinger)
Add clarification to avoid misunderstanding that cause #3360 #3378 (puffetto)
Fix ordered_map ctor with initializer_list (fixes #3343) #3370 (falbrechtskirchinger)
Fix and update CI #3368 (falbrechtskirchinger)
FetchContent_MakeAvailable #3351 (nlohmann)
Avoid clash with Arduino defines #3338 (DarkZeros)
Support UBJSON-derived Binary JData (BJData) format #3336 (fangq)
Make iterator operator++/--(int) equality-preserving #3332 (falbrechtskirchinger)
Add note on parsing ordered_json #3326 (nlohmann)
Fix CITATION.cff and add automatic validation of your citation metadata #3320 (fdiblen)
.github/workflows/windows.yml: Add support for Visual Studio 2022 #3295 (t-b)
Add maintainer targets to create source archive #3289 (nlohmann)
Fix a typo #3265 (fhuberts)
Fix typo #3249 (rex4539)
Add documentation for JSON Lines #3247 (nlohmann)
Improve documentation InputType and IteratorType #3246 (nlohmann)
Remove stringstream #3244 (nlohmann)
fix _MSC_VER version to check for std::filesystem #3240 (gcerretani)
Add macros NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT and ..._NON_INTRUSIVE_WITH_DEFAULT #3143 (pketelsen)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.