Tôi muốn sử dụng cú pháp async/await
trong C++ (khung UE4), nhưng do mã đa nền tảng, tôi không chắc là có thể ... Hoặc có thể? Nếu có, tôi có thể sử dụng nó như thế nào?Làm tất cả các trình biên dịch C++ có hỗ trợ các từ khóa không đồng bộ/chờ đợi không?
Và cũng có await
và __await
(resumable
, yield
và __yield_value
cũng) từ khóa được đánh dấu trong Visual Studio. Có gì khác biệt? Có lẽ không phải tất cả các trình biên dịch đều hỗ trợ từ khóa này hoặc hỗ trợ riêng biệt?
gcc
, clang
chấp nhận? Hoặc không chấp nhận và tôi chỉ có thể sử dụng macro cho từng nền tảng riêng lẻ.
Không, không phải * tất cả * trình biên dịch hỗ trợ cú pháp 'async' hoặc 'await'. GCC và CLang chỉ là 2 trong số rất nhiều trình biên dịch. Bạn nên kiểm tra Greenhills, IAR, Keil và Visual Studio để đặt tên một vài. –
Việc triển khai llvm & clang đang được tiến hành: xem https://twitter.com/Eric01/status/867473461836263424 (ngày 24 tháng 5 năm 2017: "Coroutines hiện đang ở Clang Trunk!") –