This is done with enable_if on the executors and adding the ability to declare a task<> as noexcept invokable. I.e., task<void(int) noexcept>.
An alternative design was to use static_assert() instead of enable_if. The problem with that approach is a single mistake would trigger multiple static_assert() (all asserts along the instantiation path).
Currently working on docs and updating hyde so this is a preview PR for comment.
This is done with enable_if on the executors and adding the ability to declare a
task<>
asnoexcept
invokable. I.e.,task<void(int) noexcept>
.An alternative design was to use
static_assert()
instead ofenable_if
. The problem with that approach is a single mistake would trigger multiplestatic_assert()
(all asserts along the instantiation path).Currently working on docs and updating hyde so this is a preview PR for comment.