[/
    Copyright (c) 2021 Dmitry Arkhipov (grisumbras@gmail.com)

    Distributed under the Boost Software License, Version 1.0. (See accompanying
    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    Official repository: https://github.com/boostorg/beast
]

[section Release Notes]

[/-----------------------------------------------------------------------------]

[heading Boost 1.87.0]

[*API Changes]

* [issue 991] Conversion into structs ignores unknown keys.
* [issue 1041] Exception wrapping behaviour for `value_to` is simplified.
* [issue 1040] Deprecated initilaizer list behavior was removed.
* [issue 1040] Deprecated type aliases were removed.


[*New Features]

* [issue 956] [link json.conversion.direct_conversion Direct serialization].
* [issue 644] Add GDB pretty printers for Boost.JSON types.


[*Fixes]

* [issue 1057] Use correct 64bit full multiplication for MinGW on ARM64.
* [issue 1048] Fix parse_into handling of tuple of the wrong size.
* [issue 1047] Check for input size larger than allowed size of sequence.
* [issue 1034] Fix `value_ref` segfaulting on GCC 14.

[heading 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]

* [issue 941] `source_location` parameter was added to throwing
  accessor functions.

[*New Features]

* [issue 940] Parse option to tolerate invalid UTF-16 surrogate pairs, and
  produce [@https://simonsapin.github.io/wtf-8/ WTF-8].
* [issue 941] Added accessor functions that return `system::result`.

[*Fixes]

* Handle missing error case in direct parsing.

[heading Boost 1.85.0]

[*New Dependencies]

* [issue 915] Boost.Endian is now used to deal with endianness.

[*API Changes]

* [issue 881] Aliases to Boost.System and Boost.Container components are
  deprecated and [*will be completely removed in 1.87.0].

[*New Features]

* [issue 979] Conversion of described classes supports private members

* [issue 979] Rvalue reference overload for `visit`.

* [issue 977] Add conversion support for path-like types.

[*Fixes]

* [issue 988] Parsing into described classes correctly considers inherited
  members.

* [issue 975] Conversion of self-referential sequences is disabled.

* [issue 952] Fixed reference handling in visit.

[heading Boost 1.84.0]

[*API Changes]

* [issue 925] Add a conversion category for variants.
* [issue 833] Add a conversion category for optionals.
* [issue 840] Relax iterator requirements for constructors from iterator pairs.

[*New Features]

* [issue 627] Parsing directly into user types.
  See [link json.conversion.direct_parsing Direct Parsing].

[*Fixes]

* [issue 933] Fix reading beyond input buffer.
* [issue 920] Fix inconsistent choice of init list constructor.
* Documentation improvements.

[heading Boost 1.83.0]

[*API Changes]

* [issue 859] The library now only throws __system_error__, except for when
  allocation failed, in which case `std::bad_alloc` is thrown.
* [issue 884] Serialization behavior can now be changed by
  [link json.ref.boost__json__serialize_options `serialize_options`].

[*New Features]

* [issue 819] [link json.conversion.contextual_conversions Contextual conversions].
* [issue 599] [link json.ref.boost__json__number_precision Parser option]
  for more precise number parsing.
* [issue 885] Support [link json.ref.boost__json__parse_options `parse_options`]
  in stream `operator<<`.
* [issue 397] [link json.ref.boost__json__parse_options Parser option] to
  allow `Infinity` and `NaN` JSON literals.
* [issue 901] [link json.ref.boost__json__number_precision Parser mode]
  that only validates numbers rather than parsing them.
* [issue 892] Numbers with exponent larger than `INT_MAX` are accepted
  by the parser and treated as infinity.

[*Fixes]

* [issue 901] Fix `object` member functions that should provide strong
  guarantee.
* [issue 887] Fix ambiguity of `end` call when `boost/range.hpp` is included.
* [issue 902] Fix ASan failures.
* [issue 904] Fix error message for `error::size_mismatch`.
* Fix conversion into tuple with const elements.

[heading Boost 1.82.0]

[*New Features]

* [issue 800] [link json.ref.boost__json__value.set_at_pointer `set_at_pointer`].
* [issue 570] [link json.ref.boost__json__value.hash_value_fr `boost::hash` support].

[*Improvements]

* [issue 848] [link json.ref.boost__json__serializer.serializer.overload3 Caller-provided serializer storage].
* [issue 807] `value_to` supports missing elements for `std::optional`.
* Documentation improvements.

[*Fixes]

* [issue 876] Fix parser suspend inside an escape character.
* [issue 814] Make sentinel() return a unique pointer.

[heading Boost 1.81.0]

[*API Changes]

* [issue 686] Conversion traits were redesigned.
* [issue 756] Removed `condition::assign_error`.
* [issue 758] Removed `generic_category` alias.

[*New Features]

* [issue 749] `object::stable_erase`.
* [issue 778] Added error condition for generic library errors.
* [issue 619] Added `parse` overload for `std::istream`.
* [issue 619] `operator>>` for `value`.

[*Improvements]

* [issue 686] Null-like type conversion support (including `std::nullptr_t`).
* [issue 736] Non-throwing conversion from `value` to user types.
* [issue 677] `value_to/from` supports `std::optional` and `std::nullopt_t`.
* [issue 517] `value_to/from` supports `std::variant` and `std::monotype`.
* [issue 626] `value_to/from` supports supports described classes and enums.
* [issue 757] Rvalue ref-qualified accessors for `value`.

[*Fixes]

* [issue 745] Support for self-swap and self-move in `string`.
* [issue 747] Support for self-swap and self-move in `array`.
* [issue 735] Replaced C floating point constants with C++ equivalents.
* Documentation improvements.

[heading Boost 1.80.0]

[*API Changes]

* [issue 703] Add non-const `value::at` overloads.
* [issue 717] Add the ability to manually choose endianness of the platform.
* Add `string::subview()` overload.

[*Fixes]

* [issue 692] Fix segfault in `array::erase(it)`.
* [issue 697] Fix low performance of `serialize` on libc++.
* [issue 708] Fix ambiguous conversion to `std::string_view` on GCC 8.
* [issue 717] Fix parsing on big-endian platforms.
* [issue 726] Fix handling of comment after trailing comma.
* Minor documentation fixes.

[heading Boost 1.79.0]

[*API Changes]

* [issue 650] Standalone mode of the library is removed. Users who wish to
  continue using standalone JSON can switch to
  [@https://github.com/CPPAlliance/standalone-json.git the C++ Alliance fork].

[*New Features]

* [issue 480] Add support for JSON Pointer.

[*Improvements]

* Add `std::error_code` overloads.
* [issue 680] Add `boost::source_location` to `error_codes`.

[*Fixes]

* [issue 668] Naturally grow string during serialization.

[heading Boost 1.78.0]

[*API Changes]

* [issue 628] Standalone mode of the library is removed.

[heading Boost 1.78.0]

[*API Changes]

* [issue 628] Standalone mode of the library is deprecated.

[*New Features]

* [issue 549] [issue 550] Allow external libraries to forward declare
  __value_to__ and __value_from__.

[*Fixes]

* [issue 608] [issue 612] Fixed signed integer overflow in number parsing.
* [issue 620] Documentation fixes.

[*Improvements]

* [issue 557] Add support for `/Zc:implicitNoexcept-` on MSVC.

[heading Boost 1.77.0]

[*New Features]

* [issue 538] [link json.ref.boost__json__string.operator_std__string_view
  Implicit conversion operator from `string` to `std::string_view`].
* [issue 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.

[heading Boost 1.76.0]

[*Fixes]

* [issue 481] Refactored __value_from__ implementation; user customizations are
  now always preferred over library-provided overloads.
* [issue 484] Fixed imprecise parsing for some floating point numbers.
* [issue 485] Fixed link errors in standalone mode, when used alongside Boost.
* [issue 497] Fix Boost.Build builds on GCC 4.8.

[heading Boost 1.75.0]

* Initial release.

[endsect]
