## Release Notes

## Boost 1.89.0

Documentation

- New documentation style. New reference documentation structure.

API Changes

- #1050 Optionals that are ranges are categorised as optionals.

- #1086 Described class support is enabled for types with bases.

## Boost 1.87.0

API Changes

- #991 Conversion into structs ignores unknown keys.

- #1041 Exception wrapping behaviour for `value_to` is simplified.

- #1040 Deprecated initilaizer list behavior was removed.

- #1040 Deprecated type aliases were removed.

New Features

- #956 Direct serialization.

- #644 Add GDB pretty printers for Boost.JSON types.

Fixes

- #1057 Use correct 64bit full multiplication for MinGW on ARM64.

- #1048 Fix parse_into handling of tuple of the wrong size.

- #1047 Check for input size larger than allowed size of sequence.

- #1034 Fix `value_ref` segfaulting on GCC 14.

## Boost 1.86.0

Deprecation

- Support for GCC versions older than version 5.0 is deprecated and will stop in Boost 1.88.0.

API Changes

- #941 `source_location` parameter was added to throwing accessor functions.

New Features

- #940 Parse option to tolerate invalid UTF-16 surrogate pairs, and produce WTF-8.

- #941 Added accessor functions that return `system::result`.

Fixes

- Handle missing error case in direct parsing.

## Boost 1.85.0

New Dependencies

- #915 Boost.Endian is now used to deal with endianness.

API Changes

- #881 Aliases to Boost.System and Boost.Container components are deprecated and will be completely removed in 1.87.0.

New Features

- #979 Conversion of described classes supports private members

- #979 Rvalue reference overload for `visit`.

- #977 Add conversion support for path-like types.

Fixes

- #988 Parsing into described classes correctly considers inherited members.

- #975 Conversion of self-referential sequences is disabled.

- #952 Fixed reference handling in visit.

## Boost 1.84.0

API Changes

- #925 Add a conversion category for variants.

- #833 Add a conversion category for optionals.

- #840 Relax iterator requirements for constructors from iterator pairs.

New Features

- #627 Parsing directly into user types. See Direct Parsing.

Fixes

- #933 Fix reading beyond input buffer.

- #920 Fix inconsistent choice of init list constructor.

- Documentation improvements.

## Boost 1.83.0

API Changes

- #859 The library now only throws `system_error`, except for when allocation failed, in which case `std::bad_alloc` is thrown.

- #884 Serialization behavior can now be changed by `serialize_options`.

New Features

- #819 Contextual conversions.

- #599 Parser option for more precise number parsing.

- #885 Support `parse_options` in stream `operator<<`.

- #397 Parser option to allow `Infinity` and `NaN` JSON literals.

- #901 Parser mode that only validates numbers rather than parsing them.

- #892 Numbers with exponent larger than `INT_MAX` are accepted by the parser and treated as infinity.

Fixes

- #901 Fix `object` member functions that should provide strong guarantee.

- #887 Fix ambiguity of `end` call when `boost/range.hpp` is included.

- #902 Fix ASan failures.

- #904 Fix error message for `error::size_mismatch`.

- Fix conversion into tuple with const elements.

## Boost 1.82.0

New Features

- #800 `set_at_pointer`.

- #570 `boost::hash` support.

Improvements

- #848 Caller-provided serializer storage .

- #807 `value_to` supports missing elements for `std::optional`.

- Documentation improvements.

Fixes

- #876 Fix parser suspend inside an escape character.

- #814 Make sentinel() return a unique pointer.

## Boost 1.81.0

API Changes

- #686 Conversion traits were redesigned.

- #756 Removed `condition::assign_error`.

- #758 Removed `generic_category` alias.

New Features

- #749 `object::stable_erase`.

- #778 Added error condition for generic library errors.

- #619 Added `parse` overload for `std::istream`.

- #619 `operator>>` for `value`.

Improvements

- #686 Null-like type conversion support (including `std::nullptr_t`).

- #736 Non-throwing conversion from `value` to user types.

- #677 `value_to/from` supports `std::optional` and `std::nullopt_t`.

- #517 `value_to/from` supports `std::variant` and `std::monotype`.

- #626 `value_to/from` supports supports described classes and enums.

- #757 Rvalue ref-qualified accessors for `value`.

Fixes

- #745 Support for self-swap and self-move in `string`.

- #747 Support for self-swap and self-move in `array`.

- #735 Replaced C floating point constants with C++ equivalents.

- Documentation improvements.

## Boost 1.80.0

API Changes

- #703 Add non-const `value::at` overloads.

- #717 Add the ability to manually choose endianness of the platform.

- Add `string::subview()` overload.

Fixes

- #692 Fix segfault in `array::erase(it)`.

- #697 Fix low performance of `serialize` on libc++.

- #708 Fix ambiguous conversion to `std::string_view` on GCC 8.

- #717 Fix parsing on big-endian platforms.

- #726 Fix handling of comment after trailing comma.

- Minor documentation fixes.

## Boost 1.79.0

API Changes

- #650 Standalone mode of the library is removed. Users who wish to continue using standalone JSON can switch to the C++ Alliance fork.

New Features

- #480 Add support for JSON Pointer.

Improvements

- Add `std::error_code` overloads.

- #680 Add `boost::source_location` to `error_codes`.

Fixes

- #668 Naturally grow string during serialization.

## Boost 1.78.0

API Changes

- #628 Standalone mode of the library is removed.

## Boost 1.78.0

API Changes

- #628 Standalone mode of the library is deprecated.

New Features

- #549 #550 Allow external libraries to forward declare `value_to` and `value_from`.

Fixes

- #608 #612 Fixed signed integer overflow in number parsing.

- #620 Documentation fixes.

Improvements

- #557 Add support for `/Zc:implicitNoexcept-` on MSVC.

## Boost 1.77.0

New Features

- #538 Implicit conversion operator from `string` to `std::string_view`.

- #521 `std::hash` specializations for JSON types.

Fixes

- `object` deallocates the correct size.

- Fixed crash when constructing `array` from a pair of iterators that form an empty range.

- `key_value_pair` allocates with the correct alignment.

Improvements

- `value_to` supports `TupleLike` types.

- `value_to` and `value_from` support `std::array` and similar types.

## Boost 1.76.0

Fixes

- #481 Refactored value_from implementation; user customizations are now always preferred over library-provided overloads.

- #484 Fixed imprecise parsing for some floating point numbers.

- #485 Fixed link errors in standalone mode, when used alongside Boost.

- #497 Fix Boost.Build builds on GCC 4.8.

## Boost 1.75.0

- Initial release.

Edit this page