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 promises winrt::fire_and_forget and winrt::impl::promise_base have the member function await_transform which uses winrt::impl::notify_awaiter, which uses winrt::impl::get_awaiter, which in turn uses winrt::impl::awaiter_finder.
When you do things like co_await 10ms in a coroutine with one of these promise types, the await_transform member function is called, and the operator co_await for std::chrono::duration is resolved by winrt::impl::get_awaiter using winrt::impl::awaiter_finder.
This works in MSVC, however Clang and GCC don't like it when the operator co_await is not declared before the definition of the awaiter_finder template class: https://godbolt.org/z/hbhhMdj3d
I believe this is the reason why some of the tests using co_await does not work on Clang without theseworkarounds in #1203.
Any ideas? I cannot tell which compilers are doing it wrong.