36 Commits

Author SHA1 Message Date
Denis Blank
0b1b284e3a Add continuable_base::is_ready and continuable_base::unpack.
* Can be used to specialize the asynchronous control flow
  on immediate available asynchronous results mostly returned by:
    - make_ready_continuable
    - make_exceptional_continuable
* Usable to avoid longer unnecessary synchronous callback nestings.
* cti::query_arg_t was renamed into cti::unpack_arg_t.
* The continuation overload nowreturns result<Args...> rather
  than std::tuple<Args...>.
* Add is_ready optimizations to make_exceptional_continuable.
2019-12-26 10:13:20 +01:00
Denis Blank
389002e918 Improve the work wrapper 2019-09-01 23:47:59 +02:00
Denis Blank
daa2fdd686 Implement cti::split which makes it possible to resolve multiple
asynchronous control flows from a single promise.
2019-03-08 22:06:44 +01:00
Denis Blank
fdd9a061c4 Make promise_base default constructible
* This makes it possible to use promise_base for optional
  promises directly rather than wrapping it as optional<promise_base<...>>.
* Invalidate the promise_base after its first usage.
* Expose an `operator bool()` to make the validility accessible.
* Remove the no longer needed private promise_no_init_arg_t tag.
2019-03-08 18:13:40 +01:00
Denis Blank
ac175b4e57 Start to implement the unit tests for loop and add range_loop 2019-01-13 18:19:49 +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
1320c8eb63 Add a unit test which tests for ready continuables explicitly 2018-12-09 17:01:56 +01:00
Denis Blank
ffa3b9ee1b Rename cti::expected -> cti::result 2018-11-25 02:23:08 +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
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
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
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
f43a730cbd Basic implementation of the shared unit tests between all and seq 2018-03-09 05:12:09 +01:00
Denis Blank
087047e26d Initial work on testing the new seq and all strategy 2018-03-09 04:54:11 +01:00
Denis Blank
1a947d5c59 Fix the flat variant implementation
* Add unit tests
2018-03-09 04:34:31 +01:00
Denis Blank
36bd134120 Change the inclusion style of the test header 2018-02-10 03:05:39 +01:00
Denis Blank
7a96a2681f Execute the single tests only once 2018-02-10 03:00:57 +01:00
Denis Blank
78f1c0ae78 More work on the unit test 2018-02-06 03:21:44 +01:00
Denis Blank
752bee6ea4 Start to port the traversal unit tests 2018-02-06 00:44:51 +01:00
Denis Blank
8b99c72071 more 2017-11-30 00:59:52 +01:00
Denis Blank
6001e99723 Make continuables usable in await expressions 2017-11-13 15:03:52 +01:00
Denis Blank
76f3fb0380 Add targets for warnings, flags and noexcept flags 2017-10-04 22:23:25 +02:00
Denis Blank
425d922965 Test the flatten transform 2017-10-04 18:45:45 +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
935fd9d32d Initial work on error testing 2017-10-03 19:53:58 +02:00
Denis Blank
f5e10d9fba Split the base tests intro multiple files 2017-10-03 01:33:04 +02:00
Denis Blank
e22db05cc3 Add potswa/cxx_function@e7beb8bfe as second test type erasure backend 2017-03-18 23:35:14 +01:00
Denis Blank
df0fd2f2da Add tests for checking the correct invalidation on destruction 2017-03-02 23:35:49 +01:00
Denis Blank
52e62ccbf4 Split the unit test type instantiations for reducing memory usage 2017-03-01 13:50:51 +01:00
Denis Blank
594b993ddc Split connection tests 2017-03-01 00:22:17 +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
6e5ec79754 initial commit 2017-02-26 00:33:32 +01:00