Denis Blank
a3a9695174
Happy new year!
2019-01-04 13:35:44 +01:00
Denis Blank
c066940d8d
Use new types instead of aliases for type erasures
...
* Makes compiler output much more readable
This is configurateable through CONTINUABLE_WITH_IMMEDIATE_TYPES,
and automatically enabled for debug builds but disabled
for release builds.
* Remove the old continuable-trait.hpp header
* Make the signature of continuable not dependent anymore
on any size of the arguments which fixes the compilation
with forward declared types.
Thanks Rogiel for the correspoding bug report.
Closes #11
2019-01-04 13:12:48 +01:00
Denis Blank
7a10363dce
Implement continuable_base<...>::as
...
* Can convert continuables to other compatible signatures
2018-12-26 05:38:10 +01:00
Denis Blank
30f0dca27f
Fix a unit test introduced in 4127c02c3f6d
2018-12-25 11:15:06 +01:00
Denis Blank
f469b7058a
Implement make_cancelling_continuable()
...
* Can be used to cancel the chain when being inside a handler
2018-12-25 09:30:23 +01:00
Denis Blank
4127c02c3f
Add an overload to make_result which accepts a exception_arg_t and exception_t
...
* Can be used to forward the result correctly from next handlers
2018-12-25 09:05:51 +01:00
Denis Blank
57bb43138b
Fix a recursive template instantiation issue on clang and gcc
2018-12-10 05:08:39 +01:00
Denis Blank
1320c8eb63
Add a unit test which tests for ready continuables explicitly
2018-12-09 17:01:56 +01:00
Denis Blank
7352cbf8a9
Make it possible to continue with a continuable from failure handlers
2018-11-30 02:10:05 +01:00
Denis Blank
70c716bb28
Make the failure handler partial applyable
...
* Make result C++17 destructible
* Add unit tests
2018-11-28 01:29:36 +01:00
Denis Blank
b77e926c41
Fix the unit tests
2018-11-26 04:37:48 +01:00
Denis Blank
82dd47b463
Cleanup the unit tests
2018-11-26 03:21:01 +01:00
Denis Blank
c5663bf1ad
Add the unit tests for the failure handlers recovering and rethrowing
2018-11-26 03:02:49 +01:00
Denis Blank
ba9ff9fce0
Initial work on routing the arguments correctly when using result<...>
2018-11-26 00:41:15 +01:00
Denis Blank
67964b0793
Attempt to fix the clang build
2018-11-25 20:43:14 +01:00
Denis Blank
cd367b3d43
Make result<> return void when calling get_value()
2018-11-25 19:56:03 +01:00
Denis Blank
5354d3512e
Fix the MSVC/Clang build even more
2018-11-25 18:01:15 +01:00
Denis Blank
2a80649084
Make exception and empty results returning a void hint
2018-11-25 17:14:23 +01:00
Denis Blank
782e1c6447
Fix the MSVC build
2018-11-25 17:08:01 +01:00
Denis Blank
f4268f60f9
initial work on the multipathing unit tests
2018-11-25 03:18:35 +01:00
Denis Blank
ffa3b9ee1b
Rename cti::expected -> cti::result
2018-11-25 02:23:08 +01:00
Denis Blank
93b1d27b07
Fix the build for the expected class
2018-11-25 02:13:01 +01:00
Denis Blank
867ab38b8e
Rework the expected_trait
...
* Add tests for the new expected public interface
2018-11-25 00:29:00 +01:00
Denis Blank
057fb37123
Introduce the continuable primitive header which supplies tags
...
* Adapts the new naming scheme from the "Unified Futures" proposal
* Provides new tags for the future inplace resolution
2018-11-19 23:59:01 +01:00
Denis Blank
6cd39a2e54
Remove a useless unit test
2018-11-19 19:36:57 +01:00
Denis Blank
646707e5dc
Move from std::decay to std::decay_t
...
* Makes the transition to traits::unref easier later
2018-11-19 19:26:18 +01:00
Denis Blank
a9d4ee5ba8
Fix the single tests
2018-11-18 18:59:54 +01:00
Denis Blank
2b4f31c121
Initial work on benchmarking
2018-11-18 17:46:24 +01:00
Denis Blank
7dbf22a2d2
Make it possible to remap the result from promisified expressions
2018-03-17 13:24:57 +01:00
Denis Blank
be6571091b
Implement continuables as return types for coroutines
...
* Closes #4
2018-03-14 10:29:45 +01:00
Denis Blank
f091cbb079
Use a std::apply style unpack
...
* Some cleanup
2018-03-14 10:29:44 +01:00
Denis Blank
d30814c2ff
Fix a MSVC C++latest warning regarding allocator traits
2018-03-12 11:21:34 +01:00
Denis Blank
a7cdb16370
Remove cxx_function from dep
...
* This is no longer needed
2018-03-12 10:54:00 +01:00
Denis Blank
05727b0ee6
Reduce the amount of instantiations tested inside the CI
2018-03-12 09:56:53 +01:00
Denis Blank
180380cfbc
Move some experimental compilation tests to its own unit test
2018-03-12 09:36:50 +01:00
Denis Blank
b26e9b5289
Split the seq tests
2018-03-12 08:49:08 +01:00
Denis Blank
a3e995c0ce
Improve order dependence for the coroutine detection
2018-03-12 07:24:04 +01:00
Denis Blank
b5571c5ee1
Convert the seq and all tests into typed tests
...
* Hopefully this fixes the GCC virtual memory errors
2018-03-12 06:55:51 +01:00
Denis Blank
c72d1afa8b
Fix a MSVC test failure
2018-03-12 06:19:34 +01:00
Denis Blank
a95246d45c
Attempt to fix the GCC and MSVC build
2018-03-09 11:49:00 +01:00
Denis Blank
de40af0927
Add cti::populate and make use of it in tests
2018-03-09 09:45:00 +01:00
Denis Blank
86c3815ae0
Make continuable_base non copyable by default
...
* Actually there is no reason that the call hierarchy is copyable
when looking at the fact that two types just cause distraction
and bad usage.
2018-03-09 08:51:33 +01:00
Denis Blank
7a00a5f1c2
Seems like move only values inside initializer lists aren't valid sometimes
2018-03-09 08:41:55 +01:00
Denis Blank
1ce251483c
Add more remaining nested unit tests to the any strategy
2018-03-09 08:13:50 +01:00
Denis Blank
c4cb102795
Fix a bug in the pack traversal where the container content wasn't perfectly forwarded
2018-03-09 08:13:20 +01:00
Denis Blank
deb798118c
Add unit tests for the nested seq and all compositions
2018-03-09 05:40:37 +01:00
Denis Blank
b50c2bf8a8
Fix non default constructible values in compositions
...
* Add a test case for the non default constructible case
2018-03-09 05:25:36 +01:00
Denis Blank
f43a730cbd
Basic implementation of the shared unit tests between all and seq
2018-03-09 05:12:09 +01:00
Denis Blank
7f76c55350
Fix the unsigned mismatch again
2018-03-09 04:57:52 +01:00
Denis Blank
087047e26d
Initial work on testing the new seq and all strategy
2018-03-09 04:54:11 +01:00