![]() |
|
|||
File indexing completed on 2025-04-07 08:33:44
0001 /* Proposed SG14 status_code 0002 (C) 2018-2024 Niall Douglas <http://www.nedproductions.biz/> (5 commits) 0003 File Created: Feb 2018 0004 0005 0006 Boost Software License - Version 1.0 - August 17th, 2003 0007 0008 Permission is hereby granted, free of charge, to any person or organization 0009 obtaining a copy of the software and accompanying documentation covered by 0010 this license (the "Software") to use, reproduce, display, distribute, 0011 execute, and transmit the Software, and to prepare derivative works of the 0012 Software, and to permit third-parties to whom the Software is furnished to 0013 do so, all subject to the following: 0014 0015 The copyright notices in the Software and this entire statement, including 0016 the above license grant, this restriction and the following disclaimer, 0017 must be included in all copies of the Software, in whole or in part, and 0018 all derivative works of the Software, unless such copies or derivative 0019 works are solely in the form of machine-executable object code generated by 0020 a source language processor. 0021 0022 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 0023 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 0024 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 0025 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 0026 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 0027 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 0028 DEALINGS IN THE SOFTWARE. 0029 */ 0030 0031 #ifndef BOOST_OUTCOME_SYSTEM_ERROR2_ERROR_HPP 0032 #define BOOST_OUTCOME_SYSTEM_ERROR2_ERROR_HPP 0033 0034 #include "errored_status_code.hpp" 0035 #include "system_code.hpp" 0036 0037 BOOST_OUTCOME_SYSTEM_ERROR2_NAMESPACE_BEGIN 0038 0039 /*! An errored `system_code` which must be a failure upon copy or move or 0040 non-default construction. The closest equivalent to `std::error_code`, except 0041 it cannot be modified. 0042 0043 This refines `system_code` into an `error` object meeting the requirements of 0044 [P0709 Zero-overhead deterministic exceptions](https://wg21.link/P0709). 0045 0046 Differences from `system_code`: 0047 0048 - Almost always a failure (this is checked at copy or move and non-default 0049 construction, and if not the case, the program is terminated as this is a logic 0050 error) 0051 - Is immutable. 0052 0053 As with `system_code`, it remains guaranteed to be two CPU registers in size, 0054 and move bitcopying. 0055 */ 0056 using error = erased_errored_status_code<system_code::value_type>; 0057 0058 #ifndef NDEBUG 0059 static_assert(sizeof(error) == 2 * sizeof(void *), "error is not exactly two pointers in size!"); 0060 static_assert(traits::is_move_bitcopying<error>::value, "error is not move bitcopying!"); 0061 #endif 0062 0063 BOOST_OUTCOME_SYSTEM_ERROR2_NAMESPACE_END 0064 0065 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |