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