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
Denis Blank
434db0fc24
First working version of co_await using continuables!
2017-12-26 03:33:44 +01:00
Denis Blank
baf47b129c
Fix the remaining copy bug in expected
2017-12-26 03:02:26 +01:00
Denis Blank
71001cecc3
more
2017-12-21 05:04:57 +01:00
Denis Blank
53c878c9c5
build fix
2017-12-10 03:51:08 +01:00
Denis Blank
dbf73b6ac6
more
2017-12-08 21:59:59 +01:00
Denis Blank
73a8da1b86
Support value and error assignments in expected
2017-12-01 19:03:13 +01:00
Denis Blank
95d5f25f84
Rename flow -> next
2017-11-30 07:32:17 +01:00
Denis Blank
b4332b66c5
Make use of expected in await
2017-11-30 07:11:23 +01:00
Denis Blank
3d6bb4d8a7
Add tests for move assignment
2017-11-30 04:20:53 +01:00
Denis Blank
7fda8b9f65
Fix some build errors in expected and add typed tests
2017-11-30 04:17:13 +01:00
Denis Blank
bf89a98d60
Fix the build
2017-11-30 02:16:49 +01:00
Denis Blank
8b99c72071
more
2017-11-30 00:59:52 +01:00
Denis Blank
b18f78c6be
More
2017-11-22 23:38:33 +01:00
Denis Blank
0f5dd265fd
more
2017-11-22 02:11:27 +01:00
Denis Blank
91b75953a6
more
2017-11-16 04:46:08 +01:00
Denis Blank
b3d350cb11
more
2017-11-14 03:13:54 +01:00
Denis Blank
a6b6148f44
More work on await
2017-11-13 18:23:04 +01:00
Denis Blank
6001e99723
Make continuables usable in await expressions
2017-11-13 15:03:52 +01:00
Denis Blank
d8591d1f13
More work on using operator await
2017-11-13 13:32:34 +01:00
Denis Blank
26ff6312ed
Initial work on corooutine/await support
2017-11-06 19:21:34 +01:00
Denis Blank
20c54f54cb
Move transforms in their own toplevel namespace
2017-10-11 17:04:01 +02:00
Denis Blank
f3c33b58c6
Improve the documentation
2017-10-04 19:07:20 +02:00
Denis Blank
2b061a6058
Move the documentation code to doc
2017-10-04 18:52:38 +02:00
Denis Blank
84ca172caa
Qualify continuable callbacks as r-value callable
2017-10-04 17:16:58 +02:00
Denis Blank
5c3ae8223a
Materialize the continuable before applying transforms
2017-10-04 16:56:56 +02:00
Denis Blank
92d247f2d6
Fix a build error with the fold emulation
2017-10-04 16:56:38 +02:00
Denis Blank
75b5ecad9d
more mocks
2017-10-04 04:52:30 +02:00
Denis Blank
b67ca1c224
Allow basic emulation of C++17 fold expressions
2017-10-04 04:32:49 +02:00
Denis Blank
04539ba638
Implement flatten as transform
2017-10-04 04:11:37 +02:00
Denis Blank
0eb272a46f
Move generic transforms out of the main class
...
* Introduce apply to use generic transforms which are
defined out of class.
2017-10-04 04:05:11 +02:00
Denis Blank
612aeef0c8
Add an operator| (pipe) for future folding and channels
2017-10-04 03:17:26 +02:00
Denis Blank
09bae47e09
Add unit tests targeting error handler and inner handler exceptions
2017-10-04 03:11:10 +02:00
Denis Blank
b80a4e852b
Fix a msvc warning
2017-10-04 02:40:53 +02:00
Denis Blank
4afeb141f1
Catch exceptions thrown by the continuation handler
...
* Forward it to the next error handler
2017-10-04 02:39:02 +02:00
Denis Blank
ddd5b0a0a6
more
2017-10-04 02:23:55 +02:00
Denis Blank
bf1ac9daee
Unify the then, fail and flow callback creation
2017-10-04 01:47:04 +02:00
Denis Blank
dc205c8e51
Started on accepting flowing callables which accept all paths
2017-10-04 01:11:25 +02:00
Denis Blank
f7fabd8ba3
Attempt to fix the GCC travis build
2017-10-04 00:10:08 +02:00
Denis Blank
1e1f5cdf5b
Fix some issues with the no exception build
2017-10-03 21:59:09 +02:00
Denis Blank
4d964b0fe2
Add error handling testing
2017-10-03 21:55:04 +02:00
Denis Blank
60c73a1a48
Add trap and unreachable
...
* Use both functions to exit on invalid behaviour
2017-10-03 21:03:27 +02:00
Denis Blank
54fb32ae56
Fix the remaining promisify composition GCC errors
2017-10-03 20:26:32 +02:00
Denis Blank
2dd1b9f361
Promisify all and any callbacks
2017-10-03 20:08:48 +02:00
Denis Blank
935fd9d32d
Initial work on error testing
2017-10-03 19:53:58 +02:00
Denis Blank
ce4ae5204a
Fix an expression result unused warning
...
* Use tuple comparison instead of value per value
2017-10-03 19:00:11 +02:00
Denis Blank
b488d88370
Simplify assert_async_binary_validation
2017-10-03 18:39:35 +02:00
Denis Blank
342d08ab1d
Simplify static_for_each_in
2017-10-03 18:33:44 +02:00
Denis Blank
457a9dca00
Simplify some tests in order to reduce heap usage while building
2017-10-03 17:32:03 +02:00
Denis Blank
b8b9f31024
Improve the documentation of promise and continuable
2017-10-03 02:42:19 +02:00
Denis Blank
52cf1ab929
Started to implement combined path callables
2017-10-03 02:25:20 +02:00
Denis Blank
7dcd18c964
Expose dispatch_error_tag and error_type
2017-10-03 01:48:22 +02:00
Denis Blank
29c61b6b96
Fix an inline function isn't defined warning
2017-10-03 01:36:32 +02:00
Denis Blank
6b9efad602
Pass promises to type erased continuables instead of the raw callbacks
2017-10-03 01:21:32 +02:00
Denis Blank
a685d9234a
Readd unique_continuable
2017-10-03 01:14:53 +02:00
Denis Blank
22c9ee01d4
Fix "all" compositions with error handling
2017-10-02 17:23:06 +02:00
Denis Blank
268245b5e4
Add the possibility to use custom error types
2017-10-02 17:22:25 +02:00
Denis Blank
bc431b4013
Rename catching -> fail
2017-10-01 03:37:34 +02:00
Denis Blank
d9546c15bb
Allow packed_dispatch to receive an arbitrary count of tail args
2017-10-01 01:49:50 +02:00
Denis Blank
e594989af2
More implementation work on error handling
2017-10-01 01:40:32 +02:00
Denis Blank
8856f85388
Fix more build failures regarding error handling
2017-10-01 01:26:49 +02:00
Denis Blank
5d11d44a44
Enable the failing part
2017-10-01 00:54:18 +02:00
Denis Blank
b9a367ba03
More work on error handling
2017-10-01 00:49:43 +02:00
Denis Blank
64c03b818d
Fix a conditional move
2017-09-30 22:21:47 +02:00
Denis Blank
0f242df1a6
Remove an unused lambda capture
2017-09-30 19:49:33 +02:00
Denis Blank
7d9198b5cc
Rename set_error -> set_exception
...
* In order to move closer to the standard
2017-09-30 02:19:58 +02:00
Denis Blank
37c70c3365
First building API of promises and error handling
...
* Currently not functional (yet)
2017-09-30 02:13:27 +02:00
Denis Blank
8e8f5e982d
Remove the deprecated composition APIs
2017-09-29 16:16:21 +02:00
Denis Blank
6481b5454d
Started on implementing error handler chaining
...
* Namespace fixups
2017-09-29 15:39:07 +02:00
Denis Blank
98936f6972
minor stuff
2017-09-29 01:24:33 +02:00
Denis Blank
9ed0adbab7
Expose the arguments in promises
...
* better IDE support
* less instantiations
2017-09-28 05:24:17 +02:00
Denis Blank
eb8528c90e
Move unused to util
2017-09-28 05:23:21 +02:00
Denis Blank
7accbdf41c
Adapt the promise to the latest tag changes
2017-09-28 05:03:15 +02:00
Denis Blank
172f3561e9
Lift invoke_proxy into chain_continuation
2017-09-28 05:02:02 +02:00
Denis Blank
687133870f
Make the multi flow less intrusive
2017-09-28 04:25:29 +02:00
Denis Blank
ff91ff7fc3
More work on supporting multiple flow paths
2017-09-27 06:47:45 +02:00
Denis Blank
0aa42d5b1a
Attempt to fix the GCC build
2017-09-27 02:35:53 +02:00
Denis Blank
b65eea8b1a
Started to implement promises and multi execution flow
2017-09-27 02:32:46 +02:00
Denis Blank
8d6c9ab895
Split util into traits and util
2017-09-27 01:10:35 +02:00
Denis Blank
7a02148c9d
Change inclusions
2017-09-26 23:28:50 +02:00
Denis Blank
bc2d46ff40
Split more functionality into seperate header
2017-09-25 03:28:00 +02:00
Denis Blank
bd68d14b34
Split the header into multiple files
2017-09-24 19:55:58 +02:00
Denis Blank
55252bce4a
Add abi inline headers
2017-09-22 17:14:39 +02:00
Denis Blank
08dbd75736
Update the codestyle
2017-09-21 23:36:09 +02:00
Denis Blank
2392778b11
Bump the version to 1.1.0
2017-04-21 20:04:04 +02:00
Denis Blank
90dfde84c5
Rename all connection functions to their std counterparts:
...
- all_of -> when_all
- any_of -> when_any
- seq_of -> when_seq
2017-04-21 19:43:46 +02:00
Denis Blank
6d9680905a
Add a promise mock
2017-03-18 02:10:14 +01:00
Denis Blank
7c0f6f897b
Some minor qualifier and naming improvements
2017-03-17 22:03:21 +01:00
Denis Blank
32d3c30703
Beautify the doxygen main page
2017-03-06 21:20:02 +01:00
Denis Blank
4baddcd534
Set the version to 1.0.0
2017-03-04 21:50:41 +01:00
Denis Blank
7ab7c726b6
Change the expected behaviour of some GTest macros from expect -> assert
2017-03-04 14:11:58 +01:00
Denis Blank
22d7404970
Fix the async completion test after bf4335d60.
2017-03-04 14:11:56 +01:00
Denis Blank
8d851d6d42
Rework the alias trait
2017-03-03 17:10:29 +01:00
Denis Blank
54de52cb4b
Convert some \note into \attention tags
2017-03-03 14:12:54 +01:00
Denis Blank
fae3d42ee0
Add a r-value overload of freeze
...
* Add checks for ensuring the propagation of the frozen property
2017-03-03 13:53:12 +01:00
Denis Blank
bf4335d602
Store the result of expect completion tests on the heap
2017-03-03 13:35:20 +01:00
Denis Blank
05b611ce78
Rework the ownership behaviour
...
* Add freeze and is_frozen methods to the continuable_base.
* Remove the public visibility of release.
2017-03-03 13:35:19 +01:00
Denis Blank
df0fd2f2da
Add tests for checking the correct invalidation on destruction
2017-03-02 23:35:49 +01:00
Denis Blank
4271f59348
Fix the MSVC build
2017-03-02 22:27:13 +01:00
Denis Blank
705138dab5
Add constexpr and noexcept where possible
2017-03-02 19:03:59 +01:00
Denis Blank
7a46100b6a
Add more documentation
2017-03-02 18:26:05 +01:00
Denis Blank
17ad6d3bc1
Add more documentation
2017-03-01 13:35:57 +01:00
Denis Blank
22d13997df
Add the sequence operator feature
2017-02-28 23:59:46 +01:00
Denis Blank
28b1d57abb
Finish the partial callback application feature
2017-02-28 22:45:46 +01:00
Denis Blank
3b4fd82039
Base implementation of partial callback calls
2017-02-28 22:22:28 +01:00
Denis Blank
43a2c47a91
Fix a materialization error on futurization
...
* Add more documentation and tests
2017-02-27 14:40:38 +01:00
Denis Blank
4448eb7351
Adds documentation entries for the destructor and release method.
2017-02-27 00:58:44 +01:00
Denis Blank
7ae1aedfbb
Adds documentation to all_of and any_of.
2017-02-27 00:37:30 +01:00
Denis Blank
6edce3bcaa
Add a documentation to make_continuable.
2017-02-26 21:47:16 +01:00
Denis Blank
6e5ec79754
initial commit
2017-02-26 00:33:32 +01:00