Thomas James Passmore ede7a4a72b Fix CMake scripts
cmake/configure_macros.cmake and cmake/configure_compiler.cmake
incorrectly reference CMAKE_SOURCE_DIR, occurences have been changed to
PROJECT_SOURCE_DIR

closes #7
2018-11-17 12:10:01 +01:00
.github Add contribution templates 2018-03-09 03:34:43 +01:00
cmake Fix CMake scripts 2018-11-17 12:10:01 +01:00
dep Update function2 to Naios/function2@db03b55b 2018-03-12 11:21:34 +01:00
doc Implement continuables as return types for coroutines 2018-03-14 10:29:45 +01:00
examples Make it possible to remap the result from promisified expressions 2018-03-17 13:24:57 +01:00
include/continuable Silence a warning when using CONTINUABLE_WITH_UNHANDLED_EXCEPTIONS 2018-03-19 09:07:34 +01:00
test Make it possible to remap the result from promisified expressions 2018-03-17 13:24:57 +01:00
tools Provide tools for creating an amalgamation header 2018-03-12 16:34:18 +01:00
.clang-format Improve the feature tests 2018-02-06 02:22:00 +01:00
.clang-tidy Some minor improvements to clang-tidy 2018-01-30 05:15:19 +01: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 Improve the documentation 2017-10-04 19:07:20 +02:00
.gitmodules Add the sceleton for an asio example 2017-10-04 19:46:30 +02:00
.travis.yml Reduce the amount of instantiations tested inside the CI 2018-03-12 09:56:53 +01:00
appveyor.yml Fix a copy paste mistake 2018-03-12 09:48:09 +01:00
CMakeLists.txt Set the CMake project version to 3.0.0 2018-03-14 10:29:45 +01:00
LICENSE.txt Happy new Year! 2018-01-04 01:45:09 +01:00
Readme.md Update the online compilers 2018-03-12 16:32:28 +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:

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.