Denis Blank ca26bbbc87 Remap asio::error::basic_errors::operation_aborted to a default constructed exception_t
* Add a successful wait on the asio async timer
* Closes #27
* Closes #28
2020-04-03 19:38:13 +02:00
.github Add contribution templates 2018-03-09 03:34:43 +01:00
cmake Add regex to match AppleClang compiler 2019-05-24 02:33:14 +02:00
dep Base implementation of an ASIO completion token integration 2020-04-03 14:44:34 +02:00
doc Base implementation of an ASIO completion token integration 2020-04-03 14:44:34 +02:00
examples Remap asio::error::basic_errors::operation_aborted to a default constructed exception_t 2020-04-03 19:38:13 +02:00
include/continuable Remap asio::error::basic_errors::operation_aborted to a default constructed exception_t 2020-04-03 19:38:13 +02:00
test Rename cti::asio_token to cti::use_continuable 2020-04-03 17:25:52 +02:00
tools Show the submodule revisions in Travis CI 2019-09-02 00:52:30 +02:00
.clang-format Improve the clang-tidy and clang-format config 2020-04-03 18:13:41 +02:00
.clang-tidy Improve the clang-tidy and clang-format config 2020-04-03 18:13:41 +02:00
.editorconfig Split the header into multiple files 2017-09-24 19:55:58 +02:00
.gitattributes Update editor, formatting and CI files 2017-09-21 23:29:21 +02:00
.gitignore Move some methods out of the attorney 2018-11-24 15:02:23 +01:00
.gitmodules Initial work on benchmarking 2018-11-18 17:46:24 +01:00
.travis.yml Add ccache, add travis cache 2019-05-24 17:39:48 +02:00
appveyor.yml Add MSVC 16 to the CI 2019-09-28 17:37:01 +02:00
CMakeLists.txt Remove ccache 2019-05-24 17:39:48 +02:00
conanfile.py Add a conanfile 2019-01-29 20:28:09 +01:00
Findcontinuable.cmake Rework the find_package() support 2018-12-11 04:30:58 +01:00
LICENSE.txt Happy new year! 2019-01-04 13:35:44 +01:00
Readme.md Link the MeetingC++ talk in the readme 2019-02-26 16:01:20 +01:00

Continuable

Current version Travic-CI build status AppVeyor CI status MIT Licensed Documentation Try continuable online Compiler explorer


Continuable is a C++14 library that provides full support for:

  • lazy async continuation chaining based on callbacks (then) and expression templates, callbacks are wrapped nicely as promises.
  • no enforced type-erasure which means we need less heap allocations than comparable libraries, strictly following the "don't pay for what you don't use" principle.
  • support for all, any and sequential connections between continuables through expressive operator overloads &&, || and >> as well as free functions when_all, when_any and when_seq.
  • asynchronous error handling through exceptions, error codes and user defined types.
  • syntactic sugar for instance: partial invocation, tuple unpacking, co_await support and executors.
  • encapsuled from any runtime, larger framework or executors makes it possible to use continuable even in smaller or esoteric usage scenarios.

Getting started:

The documentation offers everything you need:

Appearances:

MeetingC++ 2018 Talk
Continuable MeetingC++]

Issues and contributions

Issue reports are accepted through the Github issue tracker as well as Pull requests. Every contribution is welcome! Don't hesitate to ask for help if you need any support in improving the implementation or if you have any troubles in using the library.