JSON for Modern C++ version 3.10.3
Release date: 2021-10-08
SHA-256: bac28658a4c9410faa55960a70c1ac541e8a51bbaae57dc395e23ca5abd3159a (json.hpp), 4ae5744bc1edd216c79f619fd49915c0e490e41b05434c2d2b89e078299f04ed (include.zip)
Summary
This release fixes two more bug introduced in release 3.10.0: the extended diagnostics triggered assertions when used with update()
or when inserting elements into arrays. All changes are backward-compatible.
💰 Note you can support this project via GitHub sponsors or PayPal.
🐛 Bug Fixes
- Fix bug in the
update()
function when used with extended diagnostics. #3007 #3008 - Fix bug when inserting into arrays when using extended diagnostics. #2926 #3032 #3037
⚡ Improvements
Binary formats
- Custom allocators are now supported when writing binary formats (e.g., CBOR, MessagePack) into a
std::vector
. #2982 #2989
User-defined type support
- Allow conversion from types that do not define an explicit iterator type, but have a
begin()
andend()
function. #3020
Tests and CI
- Updated the Docker image used in the CI. #2981 #2986
- Corrected the compiler version mentioned in the README file. #3040
Documentation
- Add script to generate docset for Dash, Velocity, and Zeal. #2967
🔥 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.