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