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
MSVC now supports symmetric transfer, and I think gcc has since it introduced coroutines support. However, cppcoro currently only uses symmetric transfer for clang >= 7.
Rather than hard-coding a bunch more compiler versions, it may make more sense to check for __cpp_impl_coroutine >= 201902 to automatically use symmetric transfer for any compiler that claims compliant support of the final coroutine spec (probably with || __clang_minor__ >= 7 to keep working with old clang).
The text was updated successfully, but these errors were encountered:
FYI, I ran into this while comparing codegen between gcc and clang on godbolt, where cppcoro is an easy way to quickly play with coroutines. When doing this I couldn't make sense of the gcc codegen until I realized that it was actually being fed different code than clang. When I added -DCPPCORO_COMPILER_SUPPORTS_SYMMETRIC_TRANSFER to the command line, everything made sense again. Hopefully nobody else has to go through this fun discovery process.
MSVC now supports symmetric transfer, and I think gcc has since it introduced coroutines support. However, cppcoro currently only uses symmetric transfer for clang >= 7.
cppcoro/include/cppcoro/config.hpp
Lines 33 to 44 in 3912152
Rather than hard-coding a bunch more compiler versions, it may make more sense to check for
__cpp_impl_coroutine >= 201902
to automatically use symmetric transfer for any compiler that claims compliant support of the final coroutine spec (probably with|| __clang_minor__ >= 7
to keep working with old clang).The text was updated successfully, but these errors were encountered: