https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108974

Jiang An <de34 at live dot cn> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |de34 at live dot cn

--- Comment #3 from Jiang An <de34 at live dot cn> ---
> is_nothrow_invocable_v<CompletionFunction&> shall be true.

If implementation divergence is not intendedly permitted, I don't think it
makes much sense to introduce UB in this way.

I guess we should either turn it into a mandating requirement:
> Instantiation of barrier<CompletionFunction> is ill-formed
> if is_nothrow_invocable_v<CompletionFunction&> is not true.

Or relax the preconditions:
> If any invocation to the completion function throws an exception,
> the behavior is undefined.

I've mailed to LWG Chair for this...

Reply via email to