Denis Blank
936a09dac2
Finish the await tutorial
2018-03-11 08:46:46 +01:00
Denis Blank
4665dc931b
Changing promisify::from_asio to promisify::from
2018-03-11 08:23:58 +01:00
Denis Blank
d7c305ad33
More work on the documentation
2018-03-11 08:23:42 +01:00
Denis Blank
60f40415c3
Finish the connection tutorial
2018-03-11 06:40:11 +01:00
Denis Blank
71e219cbe0
Started the connection tutorial
2018-03-11 04:32:12 +01:00
Denis Blank
b031417aa8
Compositions -> Connections
2018-03-10 15:37:05 +01:00
Denis Blank
f6ee04a0c0
Add a configuration documentation section
2018-03-10 14:28:46 +01:00
Denis Blank
8d6a9b6b24
Started the new tutorial section
2018-03-10 10:30:03 +01:00
Denis Blank
a9432b2c9a
Some improvements to the documentation
2018-03-09 15:45:28 +01:00
Denis Blank
a95246d45c
Attempt to fix the GCC and MSVC build
2018-03-09 11:49:00 +01:00
Denis Blank
cb4497ef1d
Fix the remaining doxygen warnings
2018-03-09 11:19:36 +01:00
Denis Blank
17b0f7544d
Some improvements to the documentation
2018-03-09 11:11:16 +01:00
Denis Blank
bc9f77f6cb
Document the continuable_base co_await operator
2018-03-09 10:34:07 +01:00
Denis Blank
22ce1840b9
Reserve the container size across remappings
2018-03-09 10:10:56 +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
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
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
d59c0730b8
Make it possible to use non default constructible values in compositions
2018-03-09 04:50:06 +01:00
Denis Blank
cc135da250
Fix additional debug code in async pack traversal
2018-03-09 04:34:58 +01:00
Denis Blank
1a947d5c59
Fix the flat variant implementation
...
* Add unit tests
2018-03-09 04:34:31 +01:00
Denis Blank
916ea3c04d
Use the flat_variant for the expected implementation
2018-03-08 19:29:31 +01:00
Denis Blank
c66e9a8ee1
optional_variant -> flat_variant
2018-03-08 17:30:33 +01:00
Denis Blank
e78291669c
Establish the basic functionality of the optional_variant
2018-03-08 17:26:33 +01:00
Denis Blank
22896a69af
Attempt to fix the basic instantiation of variant
2018-03-08 15:40:38 +01:00
Denis Blank
42c04f0fcb
More work on implementing the optional_variant type
2018-03-08 14:24:09 +01:00
Denis Blank
224e8c835f
Some more work on the optional variant type
2018-03-08 14:06:30 +01:00
Denis Blank
ca03c52d40
more
2018-03-07 17:14:41 +01:00
Denis Blank
715cece74c
Allow non copyable completion handlers in the asio example
2018-03-06 22:06:07 +01:00
Denis Blank
98aefb59d8
First attempt on making all promises non-copyable
...
* Fix CONTINUABLE_WITH_UNHANDLED_ERRORS when using the promise as
real callback.
2018-03-06 21:50:25 +01:00
Denis Blank
73c0b17962
Mark promise helpers as noexcept
2018-03-06 21:40:37 +01:00
Denis Blank
12c23f15f8
Fix a defect unit test
2018-03-06 21:36:27 +01:00
Denis Blank
1aae8c3083
Async traversal cleanup
2018-03-06 08:49:00 +01:00
Denis Blank
201a2fc17c
Some cleanups in the any composition
2018-03-06 08:44:12 +01:00
Denis Blank
8f69198651
More cleanups in util and traits
2018-03-06 08:37:07 +01:00
Denis Blank
acc15b46ab
Traits and util cleanup
2018-03-06 03:53:18 +01:00
Denis Blank
0dbcccdc9e
Add documentation to when_any
2018-03-04 08:44:38 +01:00
Denis Blank
9ecbb00f5a
Implement the nested when_any connection
2018-03-04 08:14:11 +01:00
Denis Blank
cdbc332287
Implement the new result deduction for when_any
...
* The logic requires now that all continuables yield the same
types and amount of result objects.
2018-03-02 19:18:53 +01:00
Denis Blank
9891543b1f
Enable and document the new when_all
2018-03-02 04:49:04 +01:00
Denis Blank
dd1b605d95
Revert 5dfe388f7f8156
...
* It turns out that this isn't needed anymore and just affects
the compile time by now
* Additionally GCC can't handle this properly
2018-03-02 04:02:45 +01:00
Denis Blank
178f590aa9
Address a GCC parsing failure (compiler bug)
...
* See https://travis-ci.org/Naios/continuable/jobs/348056527#L723
2018-03-02 03:14:05 +01:00
Denis Blank
83752502dc
Fix the simplification
2018-03-02 02:54:09 +01:00
Denis Blank
92ba25cd23
Started on simplifying the all and seq composition heavily
2018-03-02 01:25:59 +01:00
Denis Blank
a9da11149b
Attempt to fix the clang build
2018-03-01 05:16:12 +01:00
Denis Blank
7602dfd50d
Basic implementation of the all composition
2018-03-01 03:21:31 +01:00
Denis Blank
1853ec8b42
Start to work on rewriting the all composition
2018-02-28 18:12:12 +01:00
Denis Blank
375e376db8
Attempt to fix the clang build
2018-02-28 17:37:02 +01:00
Denis Blank
4a5136427b
Avoid using SFINAE inside the materializer
2018-02-28 17:28:41 +01:00
Denis Blank
36257780e0
Some cleanups
2018-02-28 17:15:19 +01:00
Denis Blank
7bf0439493
Materialize continuables when applying strategies
2018-02-28 17:11:58 +01:00
Denis Blank
a1ee771059
Fix an issue when connecting void continuables
2018-02-28 02:43:57 +01:00
Denis Blank
663779f083
Add documentation to when_seq
2018-02-28 02:10:35 +01:00
Denis Blank
3c70024c0b
Make it possible to apply when_seq to iterators
2018-02-28 01:21:27 +01:00
Denis Blank
b3bf06c26e
Rename some files to match the naming standard
2018-02-28 00:46:40 +01:00
Denis Blank
017d89e34e
Partially revert 2cbac4da98e57
2018-02-28 00:41:43 +01:00
Denis Blank
17f454ceb6
Fix a remapping failure when nested tuples are involved
2018-02-28 00:32:40 +01:00
Denis Blank
2cbac4da98
Simplify make_exceptional_continuable
2018-02-28 00:30:58 +01:00
Denis Blank
9c087e60d2
Correctly handle continuables with multiple results
2018-02-28 00:02:52 +01:00
Denis Blank
6e1350086e
More work on the hint calculation for all and seq compositions
2018-02-27 23:47:51 +01:00
Denis Blank
c4cdb3c3b0
Fix the mapping when empty spreads are involved
2018-02-27 23:46:03 +01:00
Denis Blank
860ae778bc
Fix some remaining issues with calculating the signature hint from all or seq compositions
2018-02-27 17:53:23 +01:00
Denis Blank
6819c68bb2
Some more permissive issues
2018-02-27 17:35:05 +01:00
Denis Blank
a7d844d0dc
Fix some permissive issues
2018-02-27 17:19:57 +01:00
Denis Blank
3c90862768
Fix sequential compositions
2018-02-27 17:05:11 +01:00
Denis Blank
ba6c4cc905
More work on the sequential compositioning
2018-02-27 06:08:55 +01:00
Denis Blank
fd858a7ed7
First work on implementing deep sequential compositions
2018-02-27 05:07:13 +01:00
Denis Blank
b1d7a76c8f
Move the new remapping functionality to its own header
2018-02-27 02:19:08 +01:00
Denis Blank
b3a4a3d359
Lift connection logic up from all and any to a unified function
2018-02-27 02:00:37 +01:00
Denis Blank
fb4a34b328
Split the composition header into one for each strategy
2018-02-26 23:49:59 +01:00
Denis Blank
02fbad159c
Add missing licenses to cmake files
2018-02-26 19:28:24 +01:00
Denis Blank
2cb42d786d
Address a clang build failure
2018-02-26 19:05:16 +01:00
Denis Blank
05b9223da8
Require make_continuable to be called with a valid signature
2018-02-26 19:02:20 +01:00
Denis Blank
331d642e5d
Fix a build error in the result indexing
2018-02-26 18:33:26 +01:00
Denis Blank
786792f4f0
Add cti::promisify with an initial boost asio helper
2018-02-26 05:04:38 +01:00
Denis Blank
9c66b53f23
Some ideas of a promisify helper
2018-02-25 17:37:30 +01:00
Denis Blank
7730b85b24
Make it possible to supply the async traversal pack directly from the visitor
2018-02-21 04:02:18 +01:00
Denis Blank
8dbd3d058a
More work on indexing continuables together with its result
2018-02-19 15:46:00 +01:00
Denis Blank
f81f0e649c
Initial work on creating the result object
2018-02-19 04:55:02 +01:00
Denis Blank
197a8c4dd1
Add make_ready_continuable and make_exceptional_continuable
2018-02-19 02:43:36 +01:00
Denis Blank
8102c2d841
Some more ideas
2018-02-19 00:58:45 +01:00
Denis Blank
951155bc34
Make it possible to apply transformations through pipes
2018-02-10 05:12:38 +01:00
Denis Blank
5dfe388f7f
Prioritize the mapper if it does accept container and tuple like elements
2018-02-10 04:45:09 +01:00
Denis Blank
20f586376f
Some misc improvements
2018-02-10 04:04:43 +01:00
Denis Blank
cd42a7b2ba
Promote is_continuable to the public API
2018-02-10 03:40:05 +01:00
Denis Blank
7c0aa6e6ba
Move the composition functions to it's own header
2018-02-10 03:30:52 +01:00
Denis Blank
4b00f5ff8a
Fix a missing typename build failure
2018-02-10 01:15:33 +01:00
Denis Blank
04111c0bc3
More work on porting the async traversal
2018-02-10 01:13:01 +01:00
Denis Blank
16dd2b0cb9
Start to port the async traversal
2018-02-09 04:28:04 +01:00
Denis Blank
73927516c6
Set the version to 3.0.0
...
* There wil be a header split for compositions
thus the backward compatibility breaks
2018-02-09 04:16:45 +01:00
Denis Blank
bf04c6600f
Fix some MSVC warnings
2018-02-09 04:09:58 +01:00
Denis Blank
8df57d6d8b
Use std::tuple_size for retrieving the size of a tuple like type
2018-02-09 04:06:40 +01:00
Denis Blank
a5640a5d35
Fix std::array remapping
2018-02-09 03:36:12 +01:00
Denis Blank
0982748ad6
Enable another test
2018-02-07 02:43:25 +01:00
Denis Blank
217aad83ef
Fix a MSVC build failure
2018-02-07 02:39:58 +01:00
Denis Blank
bc3e3c6473
Fix some warnings
2018-02-07 02:34:12 +01:00
Denis Blank
6dc2b0d0b1
Make the tests pass
2018-02-07 02:15:09 +01:00
Denis Blank
a0a0619953
Fix some SFINAE failures in map_pack
...
* Make unpack capable of SFINAE
2018-02-07 01:57:22 +01:00
Denis Blank
0da8d1206f
Fix a bad conversion
2018-02-07 01:47:42 +01:00
Denis Blank
0e80147343
Readd return type deduction
2018-02-07 01:40:20 +01:00
Denis Blank
7db24574ae
Fix a mistake in the tuple remapper
2018-02-07 01:09:33 +01:00
Denis Blank
230b3ec967
Some minor test improvements
2018-02-07 01:01:52 +01:00
Denis Blank
a167261e00
Fix and apply proper version comments
2018-02-06 03:37:57 +01:00
Denis Blank
8ef86d3b70
Port invoke_fused -> unpack
2018-02-06 03:21:32 +01:00
Denis Blank
f0b25956b9
Implement the missing checks for container categories
2018-02-06 02:52:33 +01:00
Denis Blank
09f9da3e0e
Rename CONTINUABLE_WITH_EXCEPTIONS -> CONTINUABLE_HAS_EXCEPTIONS
...
* Since this is automatically defined
2018-02-06 02:25:27 +01:00
Denis Blank
88aebb422b
Improve the feature tests
...
* Also intend those manually and add ca clang-format (6.0)
placeholder.
2018-02-06 02:22:00 +01:00
Denis Blank
a02e9bdf89
Enable the feature detection based on __cplusplus
2018-02-06 01:58:07 +01:00
Denis Blank
7e90187e50
Some minor improvements
2018-02-06 01:57:41 +01:00
Denis Blank
c8b4e1ddcd
Improve the conditional usage of try catch
2018-02-06 00:54:11 +01:00
Denis Blank
752bee6ea4
Start to port the traversal unit tests
2018-02-06 00:44:51 +01:00
Denis Blank
a107a89991
Convert all invoke_result traits into decltype(...)
2018-02-06 00:18:06 +01:00
Denis Blank
d1e0c1d606
Move is_invokeable to traits and rename it to is_invokeable_from_tuple
2018-02-06 00:12:59 +01:00
Denis Blank
eafbe4b37d
Add a C++17 std::disjunction polyfill
2018-02-05 23:47:51 +01:00
Denis Blank
6a8919c63d
Add the public headers for both traversal strategies
2018-02-05 23:47:50 +01:00
Denis Blank
7d0e68ad9b
Convert util::tuple* to std::tuple*
2018-02-05 23:47:49 +01:00
Denis Blank
cd2af2d49a
Only check for wrongly finished async traversals in debug mode
2018-02-05 23:47:49 +01:00
Denis Blank
62823f8f56
More conversion work
2018-02-05 23:47:48 +01:00
Denis Blank
910af18f1e
Rename the inclusion guards slightly
2018-02-05 23:47:45 +01:00
Denis Blank
0d3a88c4a1
Take my GSoC code for nested pack traversal over
...
* See https://naios.github.io/gsoc2017 for details
2018-02-05 23:47:07 +01:00
Denis Blank
17a4e8a8da
Remove the continuable-api header
2018-02-02 00:24:38 +01:00
Denis Blank
9ce9884376
Rename the inclusion guards slightly
2018-02-01 22:49:42 +01:00
Denis Blank
4b317fb964
Some doxygen additions and improvements
2018-01-30 21:40:09 +01:00
Denis Blank
c4a19efa55
Some const additions
2018-01-30 02:18:31 +01:00
Denis Blank
f35cc355e0
Fix an expression result unused warning
2018-01-30 01:58:53 +01:00
Denis Blank
fb4eb379ca
More constexpr conversions
2018-01-30 01:57:41 +01:00
Denis Blank
933d773c4c
Improve the constexprness
2018-01-30 01:09:32 +01:00
Denis Blank
24201d5106
Remove the GTest requirement from the amalgamation
2018-01-30 00:30:49 +01:00
Denis Blank
f4ee3ea0d1
Make continuable.hpp include all headers of the library
...
* Move the old continuable.hpp header into continuable-types.hpp
2018-01-30 00:14:47 +01:00
Denis Blank
7aae524cb1
Remove the alignment tests
...
* Don't fail the sanitizers when testing with coroutines
2018-01-29 07:45:38 +01:00
Denis Blank
c2ad28d702
More is aligned tests
2018-01-29 07:00:17 +01:00
Denis Blank
701a8ea1a4
Attemt to fix the alignment errors
2018-01-29 01:03:44 +01:00
Denis Blank
9c4b0a3a17
Fix the memory leak tested in 5751152733
2018-01-29 00:33:53 +01:00
Denis Blank
f976591e94
Remove an unused header
2018-01-28 22:40:07 +01:00
Denis Blank
6c209c876a
Allows fail to accept plain continuables
2018-01-25 08:11:05 +01:00
Denis Blank
6e404b6eaa
Apply outer and inner size improvements for the callable wrapper
...
* This will decrease the needed allocations heavily,
since we don't have to allocate twice if a continuation is type erased
since the outer type erasure may contain the inner one with zero costs.
2018-01-25 05:00:19 +01:00
Denis Blank
9286cfa8cc
Feature detection placeholders
2018-01-24 23:05:23 +01:00
Denis Blank
b17d2f9c17
Fix a GCC warning:
...
```cpp
../include/continuable/detail/expected.hpp:344:44: error: declaration of ‘using expected = class cti::detail::util::expected<cti::detail::util::detail::void_guard_tag>’ [-fpermissive]
using expected = expected<void_guard_tag>;
^
../include/continuable/detail/expected.hpp:171:7: error: changes meaning of ‘expected’ from ‘class cti::detail::util::expected<cti::detail::util::detail::void_guard_tag>’ [-fpermissive]
class expected
```
2018-01-24 01:44:30 +01:00
Denis Blank
810d778b2e
Attemtp to fix coroutines on clang
2018-01-24 01:13:03 +01:00
Denis Blank
9b0ad832ff
Add a missing include
2018-01-24 01:06:19 +01:00
Denis Blank
efbce1f886
Mark continuation invocations as non exceptional
2018-01-23 19:40:55 +01:00
Denis Blank
ea6b76a044
Some namespace corrections
2018-01-15 05:55:32 +01:00
Denis Blank
cb225835d6
Preparation for making expected available inside the base namespace
2018-01-14 04:26:32 +01:00
Denis Blank
55a59fb7f7
Attempt to fix a gcc warning
2018-01-14 00:18:20 +01:00
Denis Blank
3626133f8e
Happy new Year!
...
* Update license notices to 2018
2018-01-04 01:45:09 +01:00
Denis Blank
140627cfd2
Fix clang and GCC build errors
2017-12-30 03:37:56 +01:00
Denis Blank
a85040b0c2
Basic skeleton for coroutine_traits
2017-12-28 05:26:29 +01:00
Denis Blank
5d95b5c3e3
Test that coroutines propagate thrown exceptions back to co_await
2017-12-28 04:16:13 +01:00
Denis Blank
6908f22996
Fix an issue with the feature inclusion order
2017-12-27 06:13:38 +01:00