16 Commits

Author SHA1 Message Date
Denis Blank
422b6138cd Lift control flow compiler intrinsics into the used scope
* Also make UNREACHABLE trap in debug mode
2019-08-27 04:01:37 +02:00
Denis Blank
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.
2019-03-08 18:13:40 +01:00
Denis Blank
20e8c7d3e3 Reflow the license text
* For some reason some spaces were removed,
  the license text and content stays the same.
2019-01-04 13:39:46 +01:00
Denis Blank
a3a9695174 Happy new year! 2019-01-04 13:35:44 +01:00
Denis Blank
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
2019-01-04 13:12:48 +01:00
Denis Blank
7dbc95c4b3 Implement zero cost ready continuables for await expressions 2018-12-16 04:25:56 +01:00
Denis Blank
dd09c3d684 Bump the version to 4.0.0 2018-12-10 18:08:29 +01:00
Denis Blank
b2726982ac Fix the build when coroutines are enabled 2018-12-10 06:03:46 +01:00
Denis Blank
62ca39e59c Some renaming 2018-12-07 04:40:03 +01:00
Denis Blank
cd367b3d43 Make result<> return void when calling get_value() 2018-11-25 19:56:03 +01:00
Denis Blank
ffa3b9ee1b Rename cti::expected -> cti::result 2018-11-25 02:23:08 +01:00
Denis Blank
93b1d27b07 Fix the build for the expected class 2018-11-25 02:13:01 +01:00
Denis Blank
867ab38b8e Rework the expected_trait
* Add tests for the new expected public interface
2018-11-25 00:29:00 +01:00
Denis Blank
c76fe9e973 Make the expected class part of the public interface
* Required for exception rethrowing and recovering
2018-11-24 22:57:18 +01:00
Denis Blank
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
2018-11-19 23:59:01 +01:00
Denis Blank
cc83fd5251 Rearrange the internal headers 2018-11-18 18:46:15 +01:00