Я хочу использовать async/await
синтаксис в C ++ (UE4 framework), но из-за кроссплатформенного кода я не уверен, что это возможно … Или возможно? Если да, как я могу его использовать?
А также есть await
а также __await
(resumable
, yield
а также __yield_value
также) ключевые слова, выделенные в Visual Studio. Какая разница? Может быть, не все компиляторы поддерживают эти ключевые слова или поддерживают отдельно?
gcc
, clang
принимает это? Или не принимает, и я могу просто использовать макросы для каждой платформы в отдельности.
async
а также await
являются расширениями языка, предложенными Microsoft с несколькими ревизиями, но в настоящее время N4134. Это еще не принято в стандарт.
Предложение против многих http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0158r0.html из-за того, что он не был полностью выпечен и не был полностью исследован в TS, и есть конкурирующие предложения, такие как N3985 который предлагает сопрограммы, которые могут быть реализованы в рамках существующего языкового стандарта.
Насколько мне известно, единственным компилятором, который фактически поддерживает async / await, является MS Visual Studio.
В качестве обновления, Clang 5.0 имеет поддержку текущего проекта предложения совместных процедур. https://isocpp.org/files/papers/N4663.pdf который в настоящее время принят в качестве TS и прогрессирует с учетом стандарта C ++ 20.
Других решений пока нет …