//// Copyright 2018 Peter Dimov 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 //// [#changes] # Revision History :idprefix: ## Changes in Boost 1.74 * `operator bool()` now returns `failed()` instead of `value() != 0`. ## Changes in Boost 1.69 * Boost.System is now header-only. A stub library is still built for compatibility, but linking to it is no longer necessary. * Even more functions have been marked `constexpr`. * The destructor of `error_category` is now protected and no longer virtual. This is a _potentially breaking change_ but its impact is expected to be limited. * `error_category` now has a constructor that accepts a 64 bit identifier, enabling distinct category objects to compare equal. * The constructors of `error_category` are now protected. * A non-allocating, nonthrowing overload of `message` has been added. * A virtual function `failed` has been added, allowing categories for which success is not synonymous with 0. * The deprecated `boost::system::throws` object has been removed. * `boost::throws()` is now deprecated and its use is discouraged. * The constructor of `system_error` taking a single `error_code` argument is now explicit. * `system_error::code()` now returns by value. ## Changes in Boost 1.68 On a {cpp}14 compiler, many Boost.System functions and member functions are now `constexpr`, and `error_code` and `error_condition` are literal classes. In addition to enabling use in constant expressions (and `constexpr` functions), this significantly improves the quality of the generated code. As a result of this change, however, now using Boost.System from {cpp}14 or {cpp}17 code requires that the library be also built with {cpp}14 or above. This is the default on GCC 6 and newer, but not on GCC 5 or Clang. One can build Boost for {cpp}14 by passing the `cxxstd=14` option to `b2`. (Previous versions allowed code built against any {cpp} standard to link with Boost.System built against any {cpp} standard. In 1.68, code using any {cpp} standard can link with Boost.System built with {cpp}14 or above, but if Boost.System is built with {cpp}11 or below, only code also built with {cpp}11 and below can link to it successfully.) ## Changes in Boost 1.65 On a {cpp}11 compiler, Boost.System now provides implicit conversions from `boost::system::error_category`, `error_code`, and `error_condition` to their standard equivalents from ``. This allows libraries to expose a {cpp}11 interface and report errors via `std::error_code` even when using Boost.System, directly or through a dependency such as Boost.ASIO.