stlab / libraries

ASL libraries will be migrated here in the stlab namespace, new libraries will be created here.
https://stlab.cc
Boost Software License 1.0
660 stars 65 forks source link

Requiring executor tasks are noexcept. #528

Closed sean-parent closed 1 year ago

sean-parent commented 1 year ago

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.