JSON for Modern C++ version 3.7.1
Release date: 2019-11-06
SHA-256: b5ba7228f3c22a882d379e93d08eab4349458ee16fbf45291347994eac7dc7ce (json.hpp), 77b9f54b34e7989e6f402afb516f7ff2830df551c3a36973085e2c7a6b1045fe (include.zip)
Summary
This release fixes several small bugs in the library. All changes are backward-compatible.
🐛 Bug Fixes
- Fixed a segmentation fault when serializing
std::int64_t
minimum value. #1708 #1722 - Fixed the
contains()
function for JSON Pointers. #1727 #1741 - Fixed too lax SFINAE guard for conversion from
std::pair
andstd::tuple
tojson
. #1805 #1806 #1825 #1826 - Fixed some regressions detected by UBSAN. Updated CI to use Clang-Tidy 7.1.0. #1716 #1728
- Fixed integer truncation in
iteration_proxy
. #1797 - Updated Hedley to v11 to fix a E2512 error in MSVC. #1799
- Fixed a compile error in enum deserialization of non non-default-constructible types. #1647 #1821
- Fixed the conversion from
json
tostd::valarray
.
⚡ Improvements
- The
items()
function can now be used with a custom string type. #1765 - Made
json_pointer::back
const
. #1764 #1769 - Meson is part of the release archive. #1672 #1694
- Improved documentation on the Meson and Spack package manager. #1694 #1720
🔨 Further Changes
- Added GitHub Workflow with
ubuntu-latest
/GCC 7.4.0 as CI step. - Added GCC 9 to Travis CI to compile with C++20 support. #1724
- Added MSVC 2019 to the AppVeyor CI. #1780
- Added badge to fuzzing status.
- Fixed some cppcheck warnings. #1760
- Fixed several typos in the documentation. #1720 #1767 #1803
- Added documentation on the
JSON_THROW_USER
,JSON_TRY_USER
, andJSON_CATCH_USER
macros to control user-defined exception handling. - Used GitHub's CODEOWNERS and SECURITY feature.
- Removed
GLOB
from CMake files. #1779 - Updated to Doctest 2.3.5.
🔥 Deprecated functions
This release does not deprecate any functions. As an overview, 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.