diff --git a/include/status-code/error.hpp b/include/status-code/error.hpp index fe0691b..7337c24 100644 --- a/include/status-code/error.hpp +++ b/include/status-code/error.hpp @@ -30,18 +30,18 @@ Distributed under the Boost Software License, Version 1.0. SYSTEM_ERROR2_NAMESPACE_BEGIN -/*! An errored `system_code` which is always a failure. The closest equivalent to -`std::error_code`, except it cannot be null and cannot be modified. +/*! An errored `system_code` which must be a failure upon copy or move or +non-default construction. The closest equivalent to `std::error_code`, except +it cannot be modified. This refines `system_code` into an `error` object meeting the requirements of [P0709 Zero-overhead deterministic exceptions](https://wg21.link/P0709). Differences from `system_code`: -- Always a failure (this is checked at construction, and if not the case, -the program is terminated as this is a logic error) -- No default construction. -- No empty state possible. +- Almost always a failure (this is checked at copy or move and non-default +construction, and if not the case, the program is terminated as this is a logic +error) - Is immutable. As with `system_code`, it remains guaranteed to be two CPU registers in size,