Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
877f8e80a5
Fix build failure caused by upstream changes in SG14 status-code.
2018-06-20 09:54:39 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b7011dd568
Fixed a nasty corner case bug where value type's without a copy constructor
...
but with a move constructor would indicate via traits that copy construction
was available. Thanks to Microsoft's compiler team for reporting this issue #140 .
2018-05-21 18:31:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c8557f9bb3
More, or less, experimental SG14 status_code support is now in Outcome.
2018-04-16 16:36:59 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1521b80835
Added experimental status_result
and status_outcome
based on experimental status_code
.
2018-04-13 10:01:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
24d1a53502
Boost edition is now 100% Boost, so defaults for result
and outcome
are
...
`boost::system::error_code::errc_t` and `boost::exception_ptr`. Moreover,
the test suite in the Boost edition now exclusively tests the Boost edition.
One can, of course, freely use the standalone edition with Boost, and the Boost
edition with `std` types.
2018-04-03 20:33:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6237ce4930
Reworked how the failure observer implementation is discovered so it can cope with dual use of Boost and STD types.
...
Renamed ADL discovered customisation point `throw_as_system_error_with_payload()` to `outcome_throw_as_system_error_with_payload()`.
2018-04-03 20:13:49 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f533900572
boost_result is finally working, boost_outcome is close, just one last thing to tweak.
2018-03-30 10:08:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ab3afd506b
Refined the deleting constructors implemented yesterday. Restored green CI hopefully.
2018-03-29 09:46:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com
e1a31b35ae
Finally got round to fixing issue #67 where noexcept tests fail on OS X for some unknown reason.
...
Turns out that the unknown reason is that libc++ has a really braindead implementation of
std::make_exception_ptr :(
2018-03-27 09:45:24 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1bf641b213
Outcome did not construct correctly from failure_type
(bug #115 )
...
Inexplicably outcome's error + exception constructor had been removed.
Nobody noticed during the Boost peer review, which is worrying seeing as that
constructor is needed for one of the main advertised features to Boost!
2018-03-24 00:06:33 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
112d73c76a
- Enhancement #107 operator==
and operator!=
now become disabled if the value, error and
...
exception types do not implement the same operator.
- Bug #116 Relatedly, both comparison operators simple didn't work right. Fixed.
2018-03-22 20:29:33 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6c2a4dcaa8
OUTCOME_TRY is now overloaded and selects void or auto edition according to input parameter count (issue #124 )
2018-03-14 19:04:18 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7df4e24cf1
Fix generation of double underscored temporary variables in OUTCOME_UNIQUE_NAME, fixing issue #120 .
2018-03-14 09:12:42 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5cc7de01f3
Fix regex mk 2
2018-03-13 23:04:33 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ce79836c7f
Fix regex in compile fail test
2018-03-13 22:02:27 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9ec5e29123
Reworked outcome into basic_outcome etc. I think that's issue #110 closed, yay!
2018-03-13 21:38:50 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f21cfdd275
Fiddle regexs once more
2018-03-13 00:15:02 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b20e01234c
Fix regexs for compile fail tests.
2018-03-12 23:56:10 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ba2b11797d
Fix compile-fail regressions
2018-03-12 21:25:45 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
08e3e2899a
Finished breaking result into basic_result and std_result (issue #110 ). Include time has *dramatically* improved, including libstdc++ headers, basic_result.hpp parses in 1.17 secs vs 4.36 secs for std_result.hpp! Still need to convert outcome over, but getting close to closing this issue.
2018-03-12 20:52:47 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5d445de60f
Fix missing include on libc++
2018-01-28 01:04:42 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f169631604
Fix test regression in clang-tidy cleanup this morning.
2018-01-17 15:13:08 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0374bf55bf
clang-tidy round 1
2018-01-17 09:10:33 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9b39b9894a
Serialisation of results containing error_code no longer permitted (issue #84 )
2018-01-10 19:02:14 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
62ab35a6b4
Purge the deduced template editions of success/failure sugar types, and eliminate remaining API compatibility with them (issue #93 )
2018-01-10 09:54:34 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d8c72ccb0e
Fix issue #95 (operator conversions on E type cause TRY to fail)
2018-01-10 09:24:42 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
46df77dd1c
Update API docs to reflect implicit conversion requirements.
2017-11-18 16:51:27 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
019be36e9d
Fix failure on clang
2017-11-18 13:26:35 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4ee19b706c
Fix issue #71
2017-11-18 13:17:35 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
84ea811ace
Added unit tests for issue #71
2017-11-18 12:44:47 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
194bd7c36e
ValueOrError support is finally compiling and working on all platforms and compilers!
2017-11-15 19:00:23 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ab1683ef16
Fix build regression
2017-11-15 12:00:41 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0dc0cdc91b
ValueOrError concept support finished.
2017-11-14 15:48:57 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dbeaed2068
Restored the old converting constructors
2017-11-11 12:35:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c542429b09
Implement construction from anything matching the ValueOrError concept
2017-11-10 22:41:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3e030f0757
Fix test regression
2017-11-03 03:39:09 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4a07a87ece
All unit tests now passing with refactored library
2017-10-28 01:57:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2f5dedb84c
Made a start on purging payload support from outcome
2017-10-27 01:59:25 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a5599e5112
Ok, I think result is now fully ported over to the new payload capable design. Now just need to purge outcome of payload support.
2017-10-27 01:20:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
63553475b1
wip in getting result to throw with payload.
2017-10-26 03:44:58 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e054470a5c
Added tutorial section on the C API
2017-10-20 02:06:07 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0112aba314
Fix more clang build breakage
2017-10-18 14:23:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f3730a95dc
Restored testing of Outcome with C++ exceptions and RTTI disabled. Fixed minor build regressions when C++ exceptions are disabled.
2017-10-17 23:20:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bedf76acbb
Fix test regressions
2017-10-17 03:00:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
817043f438
Finished off implementing the outcome policies.
2017-10-16 23:51:09 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cd7e2de410
Added repro for issue #65 to test suite, yet it appears to pass perfectly on MSVC at least. We'll see what the CIs say.
2017-10-09 15:34:35 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6db1f3501a
Finished fixing up the reference API docs for OUTCOME.
...
Broke out the parameter requirements into a template bool and generalised across result and outcome.
Purged the last of the status test code from the test suite.
Tried getting template deduced success/failure working, but also blows up on clang :(
2017-10-05 02:40:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d86cfe3b94
Added docs for C11 macro API
2017-10-03 23:57:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
fb6e92d515
Broke result.hpp out into many separate files for easier compartmentalisation.
...
Stripped the status support from result, added unchecked<T, E> typedef
2017-10-02 01:22:17 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7153efbe6c
Lots of small fixes to make a fully working scripted Boost conversion.
2017-09-28 22:32:27 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b23d6ed701
Cleared all remaining warnings on MSVC
2017-09-28 02:10:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cc8e589b54
Added FAQ entry on Outcome's checked<T, E> vs expected<T, E>.
...
Disabled expected_pass on GCC 6, it won't compile it.
2017-09-28 01:56:55 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
04638284bf
expected_pass was actually quite broken, fixed.
2017-09-28 01:02:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7d8ee1bbc0
Fix breakage from previous commit.
2017-09-28 00:40:15 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
10d139b959
Added in the WG21 Expected reference test suite with an emulated Expected shim.
2017-09-27 23:55:26 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7e716e8169
Fix issue #64 OUTCOME_TRY on excepted outcome is propagating a null error rather than just an exception
2017-08-26 20:48:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
89dc614719
Changed how quickcpplib is found by the build system
2017-08-16 22:25:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
08ad8c08f7
Turns out issue #59 was not actually fixed. Fixed now. Thanks Andrzej!
2017-08-09 23:37:02 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5685c839c2
Fix failing test.
2017-08-05 17:47:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
685ba575d7
Added error_is_errno status flag used to indicate when error code can be treated as errno.
...
outcome's comparison functions were completely wrong, fixed.
outcome::result now matches WG21 reference result in behaviours.
2017-08-05 16:49:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2dadef712d
Added WG21 reference implementation of result
2017-08-05 02:05:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cb6b70d8e8
Implemented issue #61 for outcome as well.
2017-07-29 00:34:21 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9f79eb40ad
Fix issue #61 where comparisons between dissimilar results was failing to compile.
...
Also fixed bug where serialising result<void> failed to compile.
2017-07-28 23:59:31 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cd60cf7fe6
Try again to fix regression
2017-07-28 02:28:22 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5d76329493
Quite a few regressions had occurred, these are now all fixed. Also back to being clang-tidy clean.
2017-07-27 23:59:54 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bd74371168
Formalised the hook API properly.
2017-07-24 02:07:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
832e98a684
Fix bug where default construction of T was not occurring when it should.
2017-07-20 12:17:33 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0441fe3ee5
Added a test for issue #59 (result<NonMovable> supported?)
2017-07-20 01:11:33 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c403a43a1b
Added success/failure type sugar to result (issue #60 )
2017-07-19 19:14:59 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3ba908da3c
Try out the latest VS2017.3 beta
2017-07-13 18:14:41 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e7f487c3f6
Fix issue #57 (Single-header implementation doe not compile)
2017-07-13 15:35:17 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
837a96773a
Implement issue #56 (Consider multi-argument converting parameters rather than single argument) for outcome as well.
2017-07-11 23:05:30 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
39c0e7c7bd
Implement issue #56 (Consider multi-argument converting parameters rather than single argument) for result.
2017-07-11 22:04:49 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
47b17f27c4
Last of the v1 test suite ported over to v2.
2017-07-07 02:36:52 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1737b49b57
Optimised swap is implemented.
2017-07-07 00:08:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
00f2c2a614
All but two of the v1 tests converted to v2
2017-07-06 21:42:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9b98e949f9
Added Andrzej's customisation point for TRY
2017-07-06 20:48:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1e5876f0fa
Turns out copy and move simply weren't implemented for non-trivial types. Fixed.
2017-07-06 02:25:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d3ab675514
Substantially improved the error_code_extended example. Hopefully fixed OS X compilation failure. Various other small fixes.
2017-07-06 01:57:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8ae74f9daa
travis
2017-07-06 01:08:52 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5880ba44d1
Reenable Travis per commit testing.
2017-07-05 22:01:52 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
15bd6f262e
Implemented hooks. Working well. Yay.
2017-07-05 18:33:26 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8ef842bc80
Implemented the try operations from Outcome v1.
2017-07-05 02:52:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8769b8b884
containers unit test is passing.
2017-07-05 01:14:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7c8be75127
Merged the prototype test suite into the v1 ported test suite.
...
constexpr unit tests are now working.
2017-07-05 01:08:35 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
05a0085738
Comparison unit tests are passing now.
2017-07-05 00:44:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
156a315631
Added compile-fail test support to quickcpplib, and thence a few compile fail tests.
2017-07-04 23:23:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
fcfab41660
Basic unit test is now passing with Outcome v2
2017-07-04 03:35:06 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8b30972033
Reorged test and includes for v2
2017-06-30 20:16:43 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7d6625fbc8
Mostly fully ported over to quickcpplib
2017-06-14 16:09:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e8c262fa47
Fixed build failure with older clangs with LEWG Expected test suite
2017-05-20 11:34:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b507c466b2
Issue #12 basic_monad's copy assignment no longer gets instantiated when type T cannot be copied.
2017-05-20 02:15:19 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
28b3f8269e
Issue #11 Changing state should never cause an empty state if avoidable. Outcomes and Expected will now
...
not lose previous state during assignment or emplacement if the existing state's type has a nothrow
move or copy constructor. It does this by moving the existing state onto the stack before trying to
set the new state, and if that throws it restores the previous state. This new code path only activates
if any of the types stored have throwing move constructors.
2017-05-20 02:11:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0c73108cf6
Issue #20 Rename:
...
- `monad_error` to `bad_outcome`
- `monad_errc` to `bad_outcome_errc`
- `monad_category` to `bad_outcome_category`
- `BOOST_OUTCOME_THROW_MONAD_ERROR` to `BOOST_OUTCOME_THROW_BAD_OUTCOME`
Thanks to Peter Dimov, Andrzej Krzemienski and Paul Bristow for suggesting this.
2017-05-19 00:47:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dbcde5de08
Issue #14 Removed all the static asserts in the Expected implementation apart from the nothrow
...
move constructor check, which is now correct unlike the incorrect assert from before. Thanks to
Vicente J. Botet Escriba for explaining Expected's semantics.
2017-05-14 01:28:42 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bc3c0bbfeb
Issue #15 Move outcome::expected<T, E>
into outcome::experimental::expected<T, E>
. Thanks to
...
Vicente J. Botet Escriba for persuading me to do this.
unittests.cpp had become clang-tidy unclean, fixed.
2017-05-14 00:57:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1b59eff4a1
Set opcode limits for all the major compilers, and patched into travis. Closes issue #13 .
2017-05-14 00:30:30 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2b8c42cef0
Got new opcode counting script working with MSVC and winclang (issue #13 )
2017-05-14 00:09:33 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
34822e1d63
First step in implementing issue #13 , merged Tom's fixed script into Outcome and fixed a load of bugs in it. It generates far better results than before. Next step will be to get it working on MSVC.
2017-05-13 01:31:48 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9274c0d423
Fix issue #10 Expected's operator->(), operator*() and .error() throw exceptions when they should not
2017-05-10 20:35:33 +01:00