Suggested resolution:
When a coroutine is invoked, a copy is created for each coroutine parameter. Each such copy is an object or reference with automatic storage durationthatand has the same type as the corresponding parameter. Each copy is direct-initialized (9.5 [dcl.init]) froman lvalue referring tothe corresponding parameterif the parameter is an lvalue reference, and from an xvalue referring to it otherwise. If the type of the copy is an rvalue reference type, then for the purpose of this initialization the value category of the corresponding parameter is an rvalue. Areference touse of a parameter in thefunction-bodyfunction-body of the coroutine and in the call to the coroutine promise constructor is replaced bya reference toits copy. The initialization and destruction of each parameter copy...