1////
2Copyright 2018 Peter Dimov
3
4Distributed under the Boost Software License, Version 1.0.
5
6See accompanying file LICENSE_1_0.txt or copy at
7http://www.boost.org/LICENSE_1_0.txt
8////
9
10[#changes]
11# Revision History
12:idprefix:
13
14## Changes in Boost 1.75
15
16* The platform-specific headers `windows_error.hpp`, `linux_error.hpp`,
17  and `cygwin_error.hpp` emit deprecation messages and are slated for
18  removal.
19* The old names for `generic_category()` and `system_category()` emit
20  deprecation messages and are slated for removal.
21* `error_condition::failed` is deprecated and is slated for removal.
22  `operator bool()` for `error_condition` has been reverted to its old
23  meaning of `value() != 0`. This is done for compatibility with
24  `std::error_condition` as the next release is expected to improve
25  interoperability with `<system_error>` even further. _Note that this
26  does not affect_ `error_code::failed`, which is still alive and well.
27* The overload of `error_condition::message` that takes a buffer is
28  deprecated and is slated for removal, for the same reasons. _Note that
29  this does not affect_ `error_code::message`.
30
31## Changes in Boost 1.74
32
33* `operator bool()` now returns `failed()` instead of `value() != 0`.
34
35## Changes in Boost 1.69
36
37* Boost.System is now header-only. A stub library is still built for
38  compatibility, but linking to it is no longer necessary.
39* Even more functions have been marked `constexpr`.
40* The destructor of `error_category` is now protected and no longer
41  virtual. This is a _potentially breaking change_ but its impact
42  is expected to be limited.
43* `error_category` now has a constructor that accepts a 64 bit identifier,
44  enabling distinct category objects to compare equal.
45* The constructors of `error_category` are now protected.
46* A non-allocating, nonthrowing overload of `message` has been added.
47* A virtual function `failed` has been added, allowing categories for
48  which success is not synonymous with 0.
49* The deprecated `boost::system::throws` object has been removed.
50* `boost::throws()` is now deprecated and its use is discouraged.
51* The constructor of `system_error` taking a single `error_code` argument
52  is now explicit.
53* `system_error::code()` now returns by value.
54
55## Changes in Boost 1.68
56
57On a {cpp}14 compiler, many Boost.System functions and member functions
58are now `constexpr`, and `error_code` and `error_condition` are literal
59classes.
60
61In addition to enabling use in constant expressions (and `constexpr`
62functions), this significantly improves the quality of the generated code.
63
64As a result of this change, however, now using Boost.System from {cpp}14
65or {cpp}17 code requires that the library be also built with {cpp}14 or
66above. This is the default on GCC 6 and newer, but not on GCC 5 or Clang.
67One can build Boost for {cpp}14 by passing the `cxxstd=14` option to `b2`.
68
69(Previous versions allowed code built against any {cpp} standard to link
70with Boost.System built against any {cpp} standard. In 1.68, code using
71any {cpp} standard can link with Boost.System built with {cpp}14 or above,
72but if Boost.System is built with {cpp}11 or below, only code also built
73with {cpp}11 and below can link to it successfully.)
74
75## Changes in Boost 1.65
76
77On a {cpp}11 compiler, Boost.System now provides implicit conversions
78from `boost::system::error_category`, `error_code`, and `error_condition`
79to their standard equivalents from `<system_error>`.
80
81This allows libraries to expose a {cpp}11 interface and report errors
82via `std::error_code` even when using Boost.System, directly or through a
83dependency such as Boost.ASIO.
84