| Home | Libraries | People | FAQ | More

## Release Notes

#### 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.