C++(UE4フレームワーク)でasync/await
構文を使用したいのですが、クロスプラットフォームコードのため、それが可能かどうかわかりません...または可能ですか?はいの場合、どうすれば使用できますか?
また、VisualStudioで強調表示されているawait
および__await
(resumable
、yield
および__yield_value
も)キーワードがあります。違いは何ですか?たぶん、すべてのコンパイラがこのキーワードをサポートしたり、個別にサポートしたりするわけではありませんか?
gcc
、clang
はそれを受け入れますか?または受け入れず、プラットフォームごとに個別にマクロを使用できます。
async
とawait
は、Microsoftによっていくつかの改訂が提案された言語拡張ですが、現在は N4134 です。これはまだ標準に受け入れられていません。
この提案は、完全に焼き上げられておらず、焼き付けられていないため、 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0158r0.html のような多くの人から反対されています。 TSで完全に調査されており、既存の言語標準内で実装できるコルーチンを提案する N3985 のような競合する提案があります。
私の知る限り、実際にasync/awaitをサポートするコンパイラはMSVisualStudioだけです。
更新として、clang 5.0は現在のドラフトコルーチン提案をサポートしています https://isocpp.org/files/papers/N4663.pdf 現在TSとして受け入れられており、 C++ 20標準への注目。