Commit Graph

  • 67d77808dc Fix the GCC build after bc4d69735 Denis Blank 2019-03-12 14:44:15 +01:00
  • 03ae1b5c45 Update function2 to Naios/function2@e3695b4 Denis Blank 2019-03-11 16:39:56 +01:00
  • bc4d69735c Improve cti::split and make it workable with plain callbacks Denis Blank 2019-03-11 16:39:35 +01:00
  • daa2fdd686 Implement cti::split which makes it possible to resolve multiple asynchronous control flows from a single promise. Denis Blank 2019-03-08 19:52:44 +01:00
  • 41f3429c85 Remove some using expressions * Those caused issues in namespaces where symbols were preloaded * Formatting fixes Denis Blank 2019-01-27 03:36:55 +01:00
  • 6b4f6de10f Use the work erased type directly in release builds * So this behaviour aligns to the one used in continuable_base and promise_base. Denis Blank 2019-03-08 18:23:55 +01:00
  • 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. Denis Blank 2019-03-08 18:13:40 +01:00
  • 2bc448b905 Link the MeetingC++ talk in the readme Denis Blank 2019-02-26 16:01:20 +01:00
  • e23e363b03 Add a conanfile * Closes #12 Denis Blank 2019-01-29 20:28:09 +01:00
  • d72e1bfb86 Implement async_on for asynchronous execution on a specific executor * Makes it possible to specify an executor in addition to the arguments passed to async. * The reason why async should not support this directly is that it should be closely modelled to std::async. Denis Blank 2019-01-26 03:46:39 +01:00
  • fa589a1e95 Document range_loop Denis Blank 2019-01-14 21:10:17 +01:00
  • 20cd0191fc For loops provide loop_result loop_break and loop_continue for better readability Denis Blank 2019-01-14 21:10:17 +01:00
  • 76ecc3d26d Attempt to fix the build Denis Blank 2019-01-14 21:10:17 +01:00
  • 7491022d0f Implement make_plain to make it possible to not handle special objects in handlers Denis Blank 2019-01-14 21:02:22 +01:00
  • 4c807aec75 Update a deprecation message Denis Blank 2019-01-14 18:13:22 +01:00
  • 60b75a6134 Finish the async implementation Denis Blank 2019-01-14 18:07:37 +01:00
  • b86fe7a255 Additional work on async Denis Blank 2019-01-13 17:05:22 +01:00
  • a4da3e84ef Fix the range_loop build Denis Blank 2019-01-13 17:05:22 +01:00
  • ac175b4e57 Start to implement the unit tests for loop and add range_loop Denis Blank 2019-01-13 17:05:22 +01:00
  • 135ebfccf3 Start to implement loop and async Denis Blank 2019-01-13 17:05:22 +01:00
  • 5c1cd87739 Doc improvement Denis Blank 2019-01-06 14:05:54 +01:00
  • 20e8c7d3e3 Reflow the license text * For some reason some spaces were removed, the license text and content stays the same. Denis Blank 2019-01-04 13:39:46 +01:00
  • a3a9695174 Happy new year! Denis Blank 2019-01-04 13:35:44 +01:00
  • 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 Denis Blank 2019-01-04 00:09:26 +01:00
  • 2d5aa36b67 Update function2 to Naios/function2@d2acdb6 Denis Blank 2019-01-04 12:58:24 +01:00
  • 3bd4dd40de Fixate the args of the final callback * Also allow to customize it through the CONTINUABLE_WITH_CUSTOM_FINAL_CALLBACK define. This can be used to implement custom unhandled exception handlers and more. Denis Blank 2018-12-29 06:11:03 +01:00
  • a099c504e1 Workaround for a MSVC required symbol link bug Denis Blank 2018-12-26 06:19:19 +01:00
  • 7a10363dce Implement continuable_base<...>::as * Can convert continuables to other compatible signatures Denis Blank 2018-12-25 13:24:34 +01:00
  • 30f0dca27f Fix a unit test introduced in 4127c02c3f6d Denis Blank 2018-12-25 11:15:06 +01:00
  • 96c9f7af99 More better_errors Denis Blank 2018-12-25 11:12:11 +01:00
  • 1cbfcbea6d Use new types instead of aliases for type erasure * Makes compiler output much more readable Denis Blank 2018-12-25 09:57:14 +01:00
  • d4cb7dd7b3 Only disable specific top level project settings * When being not being inside in a top level project Denis Blank 2018-12-25 09:35:20 +01:00
  • f469b7058a Implement make_cancelling_continuable() * Can be used to cancel the chain when being inside a handler Denis Blank 2018-12-25 09:30:23 +01:00
  • 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 Denis Blank 2018-12-25 09:05:51 +01:00
  • d052a02595 Remove a bad GCC diagnostic pop when using result<...> and GCC Denis Blank 2018-12-25 08:41:53 +01:00
  • 7dbc95c4b3 Implement zero cost ready continuables for await expressions Denis Blank 2018-12-16 03:11:37 +01:00
  • fcf9a76029 Set the minimum required CMake version to 3.11 * Make travis-ci install a recent CMake version * Update function2 Denis Blank 2018-12-10 17:37:25 +01:00
  • 49e3a659ad Rework the find_package() support * It is now possible to include the repository correctly through add_subdirectory * find_package(continuable) was improved to work when only the path of the repository was added to the module path. Denis Blank 2018-12-10 17:37:25 +01:00
  • 65916e29a8 Update function2 to Naios/function2@2b3bc42 Denis Blank 2018-12-10 17:37:25 +01:00
  • 121265df71 Cleanup in result<> Denis Blank 2018-12-10 17:37:25 +01:00
  • 4c41995316 Document recover, rethrow and cancel * Closes #9 Denis Blank 2018-12-10 17:37:25 +01:00
  • dd09c3d684 Bump the version to 4.0.0 Denis Blank 2018-12-10 17:37:25 +01:00
  • ff881091fc Update function2 to Naios/function2@1dd435d Denis Blank 2018-12-10 06:27:15 +01:00
  • 30d49141a8 Resolve ready continuables directly in sequential connections Denis Blank 2018-12-10 06:22:53 +01:00
  • c7ef5c6f64 Adhust the SFO buffer size so it can contain a pointer at zero cost Denis Blank 2018-12-10 06:07:43 +01:00
  • b2726982ac Fix the build when coroutines are enabled Denis Blank 2018-12-10 06:03:46 +01:00
  • 57bb43138b Fix a recursive template instantiation issue on clang and gcc Denis Blank 2018-12-10 05:08:39 +01:00
  • 1320c8eb63 Add a unit test which tests for ready continuables explicitly Denis Blank 2018-12-09 17:01:56 +01:00
  • 1bdee5b371 Remove an unused using Denis Blank 2018-12-09 16:49:03 +01:00
  • bdada99096 Fix the immediate return type of chained continuables * Statically resolve ready continuables Denis Blank 2018-12-09 16:48:08 +01:00
  • 7273891a4c Specialize the continuation chainer in case ready continuables are chained Denis Blank 2018-12-09 04:53:28 +01:00
  • 9ceee76647 Fix an issue with the is_ready overload Denis Blank 2018-12-08 17:52:22 +01:00
  • 4b1f6281fc Initial work on wrapping all continuations into the triple path schema Denis Blank 2018-12-08 05:53:44 +01:00
  • cb6ce5b43b get_arg_t -> query_arg_t Denis Blank 2018-12-08 04:50:38 +01:00
  • 24158583b7 Provide the get_arg_t and is_ready_arg_t also from continuables created through make_* Denis Blank 2018-12-08 04:49:03 +01:00
  • 6947091a27 Preserve the ownership across chainings * Fixes the unit tests Denis Blank 2018-12-08 04:31:32 +01:00
  • bcafd1b333 Only consume the data when chaining continuations Denis Blank 2018-12-08 02:32:39 +01:00
  • d416698758 Make the ready query stuff part of the private API Denis Blank 2018-12-08 02:32:39 +01:00
  • b5f353222c Make it possible to add optional methods to continuable_base depending on the annotation Denis Blank 2018-12-08 02:32:39 +01:00
  • f5dd02ef8b Some documentation fixes Denis Blank 2018-12-08 02:32:39 +01:00
  • 969445c8a0 Fix the build Denis Blank 2018-12-08 02:32:39 +01:00
  • 577b71b8ab Remove the template args from the void make_ready_continuable Denis Blank 2018-12-08 01:28:27 +01:00
  • b293d9a342 Adapt the small functor capacity to hold a ready continuable at zero cost Denis Blank 2018-12-08 01:26:14 +01:00
  • da8ec15c6f Some minor improvements Denis Blank 2018-12-07 04:46:18 +01:00
  • 62ca39e59c Some renaming Denis Blank 2018-12-07 04:40:03 +01:00
  • f17cc4073c Add the is_ready proto Denis Blank 2018-11-30 03:04:48 +01:00
  • 7a5bde328c Unify the exception and result invoker Denis Blank 2018-11-30 03:04:48 +01:00
  • 7352cbf8a9 Make it possible to continue with a continuable from failure handlers Denis Blank 2018-11-30 02:10:05 +01:00
  • 4d58e3bded Attempt to fix the GCC build Denis Blank 2018-11-28 17:55:01 +01:00
  • 1edd1e633d Fix the unit tests Denis Blank 2018-11-28 17:00:35 +01:00
  • 70c716bb28 Make the failure handler partial applyable * Make result C++17 destructible * Add unit tests Denis Blank 2018-11-28 01:29:36 +01:00
  • bb7112eec2 Fix the build Denis Blank 2018-11-27 16:38:19 +01:00
  • f1f9d61952 Attempt to remove the plain handler Denis Blank 2018-11-27 02:39:41 +01:00
  • b77e926c41 Fix the unit tests Denis Blank 2018-11-26 04:37:48 +01:00
  • 812420cf06 Unify the exception and result handler * Make the failure handler partial applyable Denis Blank 2018-11-26 04:15:40 +01:00
  • a9375c7f22 Implement the exception invokers which fully implements recover, rethrow and cancel now Denis Blank 2018-11-26 04:12:17 +01:00
  • ca1c0bf1da Split the logic for exception forwarding Denis Blank 2018-11-26 03:27:35 +01:00
  • 82dd47b463 Cleanup the unit tests Denis Blank 2018-11-26 03:21:01 +01:00
  • c5663bf1ad Add the unit tests for the failure handlers recovering and rethrowing Denis Blank 2018-11-26 03:02:49 +01:00
  • afe1a3298e Make the current unit tests pass Denis Blank 2018-11-26 02:35:27 +01:00
  • 9955f9e469 Add the invoker for result<...> Denis Blank 2018-11-26 02:19:16 +01:00
  • ba9ff9fce0 Initial work on routing the arguments correctly when using result<...> Denis Blank 2018-11-26 00:41:15 +01:00
  • 7767ce6fbb Only provide value_t from result Denis Blank 2018-11-25 21:31:08 +01:00
  • 67964b0793 Attempt to fix the clang build Denis Blank 2018-11-25 20:43:14 +01:00
  • 41da6ba293 Remove the is_result trait Denis Blank 2018-11-25 20:00:41 +01:00
  • cd367b3d43 Make result<> return void when calling get_value() Denis Blank 2018-11-25 19:56:03 +01:00
  • 5354d3512e Fix the MSVC/Clang build even more Denis Blank 2018-11-25 18:01:15 +01:00
  • 2a80649084 Make exception and empty results returning a void hint Denis Blank 2018-11-25 17:14:23 +01:00
  • 782e1c6447 Fix the MSVC build Denis Blank 2018-11-25 17:08:01 +01:00
  • f4268f60f9 initial work on the multipathing unit tests Denis Blank 2018-11-25 03:18:35 +01:00
  • 07c8ed0cf9 Add invoker for the result class and specialized ones Denis Blank 2018-11-25 02:54:35 +01:00
  • ffa3b9ee1b Rename cti::expected -> cti::result Denis Blank 2018-11-25 02:23:08 +01:00
  • 93b1d27b07 Fix the build for the expected class Denis Blank 2018-11-25 02:13:01 +01:00
  • 867ab38b8e Rework the expected_trait * Add tests for the new expected public interface Denis Blank 2018-11-24 22:48:16 +01:00
  • c76fe9e973 Make the expected class part of the public interface * Required for exception rethrowing and recovering Denis Blank 2018-11-24 22:48:16 +01:00
  • 3a70356f16 Move some methods out of the attorney * Code cleanup Denis Blank 2018-11-24 15:02:23 +01:00
  • 6969a9e392 Expose finish() method in continuable_base which makes it possible to materialize the continuable_base when using it as an expression template. Denis Blank 2018-11-24 14:26:51 +01:00
  • 0657445466 Re-enable the deprecation warnings * Ref 815c3d71 Denis Blank 2018-11-22 00:49:57 +01:00
  • 815c3d71b9 Make the old error and dispatch tag not throw deprecation warnings for now Denis Blank 2018-11-22 00:48:02 +01:00
  • 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 Denis Blank 2018-11-18 19:00:38 +01:00