mirror of
https://github.com/Naios/continuable.git
synced 2025-12-06 08:46:44 +08:00
* 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 |
||
|---|---|---|
| .github | ||
| cmake | ||
| dep | ||
| doc | ||
| examples | ||
| include/continuable | ||
| test | ||
| tools | ||
| .clang-format | ||
| .clang-tidy | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .travis.yml | ||
| appveyor.yml | ||
| CMakeLists.txt | ||
| Findcontinuable.cmake | ||
| LICENSE.txt | ||
| Readme.md | ||
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_awaitsupport 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:
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.