Skip to content

JSON for Modern C++ version 3.10.3

Compare
Choose a tag to compare
@nlohmann nlohmann released this 08 Oct 12:40
· 282 commits to develop since this release
aa0e847

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() and end() function. #3020

Tests and CI

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):

All deprecations are annotated with HEDLEY_DEPRECATED_FOR to report which function to use instead.