Commit Graph
165 Commits
Author SHA1 Message Date
Peter Dimov 3e6af15652 Add system/detail/mutex.hpp, use it in error_category_impl.hpp 2023-01-19 12:04:06 +02:00
Peter Dimov b3faedfe3e Extend Clang 6 workaround to Clang 7 under Android. Fixes #100. 2023-01-10 03:09:20 +02:00
Peter Dimov 32bf67f748 error_code wrapping std::error_code should never compare equal to error_code not wrapping std (because of hash_value.) Fixes #101. 2023-01-07 19:56:34 +02:00
Peter Dimov 36e1236a0f Remove _Addr assignment from the constructor of std_category. Fixes #98. 2022-12-10 22:17:51 +02:00
Peter Dimov 14f779e234 Update Win32 translation table. Closes #97. 2022-12-10 18:38:19 +02:00
Peter Dimov 7ae6b317f3 Only disable C4351 on msvc-12.0 and earlier (refs #96) 2022-10-26 15:52:18 +03:00
Peter Dimov 53c00841fc Add support for BOOST_SYSTEM_DISABLE_THREADS (refs #92) 2022-09-08 18:32:26 +03:00
Peter Dimov 3faf415026 Resolve ambiguities when comparing error_condition with std enums (refs #91) 2022-08-24 22:56:15 +03:00
Peter Dimov efb7634666 Move code/condition comparisons back outside class error_code; fixes #91 2022-08-24 21:10:05 +03:00
Peter Dimov 8c740705e6 Add missing include 2022-08-21 19:42:10 +03:00
Vinnie Falco ac1ed1ecc1 error_code default ctor is constexpr in c++11 2022-08-21 08:17:54 -07:00
Peter Dimov 648a35838b Remove unnecessary overloads 2022-05-05 05:12:08 +03:00
Peter Dimov 256fe92dbb Add error_code(error_code const& ec, source_location const* loc) and a corresponding assign 2022-05-05 05:02:37 +03:00
Peter Dimov a97e5a0546 Move BOOST_NOINLINE to operator std::error_category 2022-04-22 22:41:26 +03:00
Peter Dimov 9279001b8c Check BOOST_NO_CXX11_HDR_MUTEX when enabling <system_error> integration 2022-04-22 16:49:03 +03:00
Peter Dimov 616e652bd7 Suppress strict-aliasing warning for gcc 4.8 to 6 2022-04-21 21:06:14 +03:00
Peter Dimov 98439855bd Use static_cast instead of reinterpret_cast 2022-04-21 20:52:02 +03:00
Peter Dimov 986efb1420 Rework conversion to std::error_category to not allocate (closes #78) 2022-04-21 20:32:25 +03:00
Peter Dimov 28a13571b9 Restore the original system::error_code from std::error_code (refs #79) 2022-03-18 18:24:01 +02:00
Peter Dimov 0a9266ea7e Add a comment explaining the one-time allocation in error_category_impl.hpp. Fixes #78. 2022-03-18 08:11:16 +02:00
Peter Dimov de610efd53 Move conditions to detail/config.hpp 2022-02-07 03:16:23 +02:00
Peter Dimov 4b143cdacc Use BOOST_LIBSTDCXX_VERSION instead of BOOST_GCC; update syscat condition 2022-02-07 03:02:57 +02:00
Peter Dimov b9c26b9fa0 Add detail::system_error_category_message, use it in error_code::message 2022-02-03 05:47:43 +02:00
Peter Dimov 2e2430c4fa Add error_code::category_name helper, use it in to_string 2022-02-03 04:36:58 +02:00
Peter Dimov 4b1caad727 Avoid sign conversion warnings in error_code::value 2022-01-19 17:30:56 +02:00
Marcel Raad 86b031cab9 Fix error_code's operator<< for arbitrary basic_ostream specializations
This fixes a regression from commit
https://github.com/boostorg/system/commit/a9b64a888a24400cc2af9910a6ff88c3c4fd3210.
Calling `operator<<` with `std::string` only works for `std::ostream`.
Use `c_str()` to restore the previous behavior of using `const char*`,
which works for any `basic_ostream` specialization.
2021-12-21 13:17:26 +01:00
Peter Dimov f78b036665 Update #if condition 2021-10-29 21:13:10 +03:00
Ed Catmur 9b0d735040 Add __attribute__((__format__)) to snprintf
This attribute will check format string bugs and is required for clean compile if -Wformat-nonliteral is enabled.
2021-10-29 11:59:03 +01:00
Peter Dimov 4ec1e54099 Enable error_code construction from enums specializing std::is_error_code_enum. Fixes #70. 2021-10-11 02:02:22 +03:00
Peter Dimov eefcc5dcf6 Add error_code::what 2021-10-02 14:41:27 +03:00
Peter Dimov 0ccf08509b Add a constructor taking ErrorCodeEnum and a source location 2021-10-01 23:04:04 +03:00
Peter Dimov 85c7d92302 Avoid instantiating the system category in error_code::operator std::error_code 2021-09-24 15:24:45 +03:00
Peter Dimov 1659dfbeba Avoid instantiating generic_category in error_condition::operator std::error_condition 2021-09-24 04:27:08 +03:00
Peter Dimov d2b8b54356 Do not use std::system_category under MinGW and g++ 4.x 2021-09-21 16:35:40 +03:00
Peter Dimov 41f7ea49cb Do not use std::system_category under VS2013 2021-09-21 16:02:12 +03:00
Peter Dimov ad66ea43a3 Revert addition of get_generic_std_category, get_system_std_category (they need this); do not use std::system_category on Cygwin 2021-09-21 15:45:00 +03:00
Peter Dimov 9b11d864be Add helper functions get_generic_std_category, get_system_std_category 2021-09-21 15:01:44 +03:00
Peter Dimov cc6a61b6c5 Convert system_category to std::system_category 2021-09-21 05:34:05 +03:00
Peter Dimov 60a20eeeb9 Retain old generic_category conversion behavior on g++ 4.8/4.9 2021-09-19 18:44:45 +03:00
Peter Dimov b1dec88674 Convert generic_category to std::generic_category 2021-09-19 17:08:46 +03:00
Peter Dimov 5fd2535d9f Excise generic_category() references from error_condition 2021-09-19 16:04:16 +03:00
Peter Dimov e3f198e52c Add error_condition::to_string 2021-09-19 15:37:49 +03:00
Peter Dimov 47137ad116 Change predefined error_category identifiers to be contiguous for better codegen 2021-09-19 15:04:51 +03:00
Peter Dimov c02cd2b004 Add private error_code::equals, use it in error_category::equivalent 2021-09-19 05:24:08 +03:00
Peter Dimov c8c5ad1ce5 Rework error_condition::op== to not require the generic_category() instance 2021-09-19 04:49:35 +03:00
Peter Dimov 984f8f1a92 Reorder constructor overloads 2021-09-16 18:04:27 +03:00
Peter Dimov b507b2294e Unbreak the loc == 0 case, even though the specification disallows it 2021-09-16 03:12:20 +03:00
Peter Dimov 3b70265ced Rearrange error_code::failed to improve codegen 2021-09-15 16:42:47 +03:00
Peter Dimov a65b91b3fb Merge branch 'develop' into feature/source-location 2021-09-15 16:06:55 +03:00
Peter Dimov 5e642b1d43 Remove error_condition::failed_ in order to prioritise construction efficiency over failed() efficiency (latter is rare for conditions) 2021-09-15 14:54:26 +03:00