Results 73 issues of Lewis Baker

The current specification of the coroutines TS (N4680) defines the semantics of the coroutine as follows: ```c++ { P promise; co_await p.initial_suspend(); try { } catch (...) { p.unhandled_exception(); }...

Should we be supporting the ability for template functions to be conditionally compiled as coroutines in cases where one branch of an `if constexpr` branch contains the `co_await` keyword and...

Currently the comparison operators for `coroutine_handle` are defined for `coroutine_handle`. This means that it is valid to compare `coroutine_handle` with `coroutine_handle` as both are implicitly cast to `coroutine_handle` and then...

It would be great if we could add support for `operator co_await` to the `std::reference_wrapper` type. I've written up a draft proposal on the idea here: https://github.com/lewissbaker/papers/blob/master/isocpp/reference_wrapper-co_await.md

The current specification (N4680) wording for `get_return_object()` in 8.4.4(5) simply just says that: > ... the return value is produced by a call to `p.get_return_object()` This return-value can potentially be...

If a coroutine's promise object throws an exception from `promise_type::unhandled_exception()` (eg. if it rethrows the current exception), what state is the coroutine left in? *Is the coroutine suspended prior to...

See [statements.tex](https://github.com/GorNishanov/CoroutineWording/blob/8c37f50461d1267b79de2e9f6a78f29340dc7f79/Coroutines/statements.tex#L305) section on translation of `co_return`. The wording currently says: ```tex \begin{itemize} \item $S$ is $p$\tcode{.return_value(}\grammarterm{braced-init-list}{}\tcode{)}, if the operand is a \grammarterm{braced-init-list}; \item $S$ is $p$\tcode{.return_value(}\grammarterm{expression}{}\tcode{)}, if the operand...

Currently the whole body of the `generator` class is dependent on the `Value` template parameter which means it'll be instantiated for each combination of Ref/Value/Allocator. However, there is a large...