Commit Graph
52 Commits
Author SHA1 Message Date
Peter Dimov 93852d1a7e Support result<void> &= fv. Refs #119. 2024-04-09 03:01:38 +03:00
Peter Dimov 96fef94580 Support result<void> & fv, where fv returns void. Refs #119. 2024-04-08 18:01:41 +03:00
Peter Dimov 75ab18c9fd Support result<X> & fv, where fv returns void. Refs #119. 2024-04-08 17:55:50 +03:00
Klemens Morgenstern f6fcb1b690 declared global constants as inline with BOOST_INLINE_CONSTEXPR 2024-04-06 21:54:33 +08:00
Peter Dimov 310bf1d544 Add operator|=(result&, fn0r) 2024-02-01 07:18:41 +02:00
Peter Dimov f18edb3d24 Add operator|=(result&, fn0v) 2024-02-01 06:49:23 +02:00
Peter Dimov a9659f4318 Add operator|=(result&, value) 2024-02-01 06:40:47 +02:00
Peter Dimov c7a0ce3349 Enable result<void> &= fr. Refs #117. 2024-02-01 02:39:31 +02:00
Peter Dimov 293174a1d3 Enable result<void> & fr. Refs #117. 2024-01-31 05:36:52 +02:00
Peter Dimov 5c1d0df893 Enable result<void> & fv. Refs #117. 2024-01-31 05:26:01 +02:00
Peter Dimov 2aa5d4d97f Add definitions of ::in_place_* for result specializations. Fixes #115. 2023-12-15 03:17:21 +02:00
Peter Dimov 52220a0351 Add definitions of result<T, E>::in_place_*. Refs #115. 2023-12-15 02:24:18 +02:00
Peter Dimov d11dd4b396 Add operator&=( result&, unary-returning-result ) 2023-10-31 03:08:02 +02:00
Peter Dimov ca5bca39ce Add operator&=( result&, unary-returning-value ) 2023-10-31 02:44:45 +02:00
Peter Dimov a58115cb50 Reorder operator& code for better codegen 2023-10-31 01:51:38 +02:00
Peter Dimov 54d3b253b1 Add operator&( result, unary-returning-result ) 2023-10-29 20:57:29 +02:00
Peter Dimov 194b84e663 Add operator&( result, unary-returning-value ) 2023-10-29 19:37:43 +02:00
Peter Dimov 7ffd63d54c Fix rvalue result<void> cases 2023-10-29 19:13:11 +02:00
Peter Dimov dc73ca428b Add operator|( result, nullary-returning-result ) 2023-10-29 03:20:08 +03:00
Peter Dimov c1fa3619b6 Add operator|( result, nullary-returning-value ) 2023-10-29 02:32:19 +03:00
Peter Dimov 0cd351014b Remove C++14-ism 2023-10-29 01:41:50 +03:00
Peter Dimov d38e54d4c3 Add operator|( result, value ) 2023-10-29 01:30:01 +03:00
Peter Dimov b0ef682e3d Update documentation 2023-09-14 02:20:46 +03:00
Peter Dimov c360ff1b1c Add a converting constructor to result<void> 2023-09-12 04:48:45 +03:00
Peter Dimov 951b3fe7b4 Add result<U&, E> specialization. Fixes #72. 2023-09-12 03:34:24 +03:00
Klemens c5c49894e6 Made result::error movable.
Closes #108.
2023-03-17 12:53:14 +08:00
Peter Dimov c92d50abbd Do not consider types with explicit operator bool (such as result itself) constructible from bool for the purposes of result construction. Refs #104. 2023-01-22 02:07:28 +02:00
Peter Dimov 8ce2a9f835 Disable result converting constructor when T is convertible from the rhs result<T2, E2>. Refs #104. 2023-01-22 01:22:02 +02:00
Peter Dimov f0b27c5826 Enable implicit construction when the alternative is explicitly constructible from the argument. Fixes #103. 2023-01-21 20:09:53 +02:00
Peter Dimov 1e4c050d6c Add result<>::emplace (refs #85) 2022-10-18 00:46:59 +03:00
Peter Dimov 20ce51858b Add in_place_value, in_place_error to result<>. Refs #93. 2022-09-27 18:18:16 +03:00
Peter Dimov 52d7429473 Add value_type, error_type typedefs to result. Refs #93. 2022-09-26 21:20:40 +03:00
Peter Dimov cc7c2f7ee4 Return v_.index() == 1 from has_error() to avoid -Wmaybe-uninitialized in error() 2022-08-02 22:44:34 +03:00
Peter Dimov f2e1db8021 Constrain explicit value and error constructors to not accept zero arguments. Fixes #86. 2022-07-26 21:49:13 +03:00
Peter Dimov 4200b00973 Add converting constructor to result (refs #82) 2022-06-18 18:12:06 +03:00
Peter Dimov 6d7a57a970 Add throw_exception_from_error overload for std::exception_ptr 2022-02-18 02:55:34 +02:00
Peter Dimov 00c71cf388 Add throw_exception_from_error overloads for boost::system::errc, std::errc 2022-02-17 21:55:47 +02:00
Peter Dimov 4f09f4adde Use throw_with_location in throw_exception_from_error 2022-02-13 22:50:20 +02:00
Peter Dimov b92be6417a Add a source_location parameter to throw_exception_from_error 2022-02-05 05:24:29 +02:00
Peter Dimov 9554d8bbd3 Suppress incorrect warnings from GCC 7/8 2022-02-03 19:02:19 +02:00
Peter Dimov a5d68e52e6 Add throw_exception_from_error overload for std::error_code 2022-02-03 18:35:42 +02:00
Peter Dimov 9c6a09f41d Mark throw_exception_from_error as noinline 2022-02-03 09:37:59 +02:00
Peter Dimov 01ce081470 Disable errc_t -> arithmetic conversions when initializing result (closes #74) 2021-12-11 01:22:08 +02:00
Peter Dimov 5217e58a7d Enable implicit construction for aggregates using {{ ... }} 2021-10-02 22:07:05 +03:00
Peter Dimov ce37e23491 Protect against dangling references in op* and value() 2021-10-02 19:16:04 +03:00
Peter Dimov 2b6a708070 Update test/result_copy_construct 2021-09-17 19:25:20 +03:00
Peter Dimov 50f84f16dc Add result<void, E> specialization 2021-09-17 19:22:15 +03:00
Peter Dimov 3f67d3def5 Rename throw_exception_from_error_code to throw_exception_from_error 2021-09-17 18:33:04 +03:00
Peter Dimov c8492a705d Use unsafe_get instead of *get_if 2021-09-17 15:47:35 +03:00
Peter Dimov fe3d0e6c14 Update all references to <system_error> to refer to Boost.System 2021-09-16 19:16:30 +03:00