|
template<typename _Ty > |
bool | _TryAwaitReady (_Ty &_Obj, decltype(std::declval< _Ty >().await_ready(), 0), int) |
|
template<typename _Ty > |
bool | _TryAwaitReady (_Ty &_Obj, decltype(await_ready(std::declval< _Ty >()), 0),...) |
|
template<typename _Ty , typename _Handle > |
void | _TryAwaitSuspend (_Ty &_Obj, _Handle _Hnd, decltype(std::declval< _Ty >().await_suspend(std::declval< _Handle >()), 0), int) |
|
template<typename _Ty , typename _Handle > |
void | _TryAwaitSuspend (_Ty &_Obj, _Handle _Hnd, decltype(await_suspend(std::declval< _Ty >(), std::declval< _Handle >()), 0),...) |
|
template<typename _Ty > |
auto | _TryAwaitResume (_Ty &_Obj, decltype(std::declval< _Ty >().await_resume(), 0), int) |
|
template<typename _Ty > |
auto | _TryAwaitResume (_Ty &_Obj, decltype(await_resume(std::declval< _Ty >()), 0),...) |
|
template<typename _Ty > |
std::true_type | _TryAwaitable (_Ty, decltype(_TryAwaitReady(std::declval< std::decay_t< _Ty >>(), 0, 0), _TryAwaitSuspend(std::declval< std::decay_t< _Ty >>(), std::experimental::coroutine_handle<>(), 0, 0), _TryAwaitResume(std::declval< std::decay_t< _Ty >>(), 0, 0), 0)) |
|
std::false_type | _TryAwaitable (...) |
|