You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The co_await operator is described completely in [expr.await]. The attributes and restrictions found in the rest of [over.oper] do not apply to it unless explicitly stated in [expr.await].
we only mention operator co_await operator in [expr.await] p3
Evaluation of an await-expression involves the following auxiliary types, expressions, and objects:
[...]
o is determined by enumerating the applicable operator co_await functions for an argument a ([over.match.oper]), and choosing the best one through overload resolution ([over.match]). If overload resolution is ambiguous, the program is ill-formed. If no viable functions are found, o is a. Otherwise, o is a call to the selected function with the argument a. If o would be a prvalue, the temporary materialization conversion ([conv.rval]) is applied.
Except that, we didn't mention operator co_await in [expr.await] any more. In the complete subclause [expr.await], we never give the specification that which scopes an operator co_await can be declared in, what number of parameters the function shall have, and how the lookup rules perform to find the function. We never state these details in [expr.await].
By testing the implementations(e.g., Clang and GCC), it seems that having a different scope in which operator co_await is declared, the function should accompany by a different number of parameters. As well, a different lookup rule will perform to find the declarations.
The text was updated successfully, but these errors were encountered:
[over.oper.general] says
we only mention
operator co_await
operator in [expr.await] p3Except that, we didn't mention
operator co_await
in [expr.await] any more. In the complete subclause [expr.await], we never give the specification that which scopes anoperator co_await
can be declared in, what number of parameters the function shall have, and how the lookup rules perform to find the function. We never state these details in [expr.await].By testing the implementations(e.g., Clang and GCC), it seems that having a different scope in which
operator co_await
is declared, the function should accompany by a different number of parameters. As well, a different lookup rule will perform to find the declarations.The text was updated successfully, but these errors were encountered: