cpp/coroutine/coroutine traits

Determines the promise type from the return type and parameter types of a coroutine. The standard library implementation provides a publicly accessible member type same as  if the qualified-id is valid and denotes a type. Otherwise, it has no such member.

Program-defined specializations of shall define a publicly accessible member type ; otherwise, the behavior is undefined.