JSON for Modern C++ version 3.10.1
Release date: 2021-08-24
SHA-256: 0b628af78a2f0f3e2ff41d8dfa18314dd53831ffc2720c2944192d9f53727f4d (json.hpp), 144268f7f85afb0f0fbea7c796723c849724c975f9108ffdadde9ecedaa5f0b1 (include.zip)
Summary
This release fixes a bug introduced in release 3.10.0: the extended diagnostics triggered an assertion when used with ordered_json
. All changes are backward-compatible.
💰 Note you can support this project via GitHub sponsors or PayPal.
🐛 Bug Fixes
- Fix an assertion triggered in the extended diagnostics using
ordered_json
. #2962 #2963 - Make GDB pretty-printer robust against unset variable names. #2950
⚡ Improvements
Warnings
Tests and CI
- Avoid duplicate builds in AppVeyor. #2952
- Remove an outdated test binary that is not supported any longer. #2941 #2945
- Skip tests that would fail if CMake option
JSON_Install
is set toOFF
. #2946 #2947 - Move Travis jobs to travis-ci.com. #2938 #2959
- Set stack size for some unit tests when building with MSVC. #2955 #2961
- Add a regression test. #2960
Documentation
- Update the Homebrew command as nlohmann-json is now in homebrew-core. #2943 #2966
- Add example for integration via vcpkg. #2944 #2954
- Fix a typo in the documentation. #2968
🔥 Deprecated functions
Passing iterator pairs or pointer/length pairs to parsing functions (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, call basic_json::from_cbor(ptr, ptr+len)
instead of basic_json::from_cbor({ptr, len})
.
The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):
- Function
iterator_wrapper
are deprecated. Please use the member functionitems()
instead. - Functions
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.
All deprecations are annotated with HEDLEY_DEPRECATED_FOR
to report which function to use instead.