Tun alle C++ - Compiler unterstützen das async/await-Schlüsselwörter?
Möchte ich async/await
syntax in C++ (UE4 Rahmen), aber aufgrund der cross-Plattform-code, den ich nicht sicher, ob das möglich ist... Oder möglich? Wenn ja, wie kann ich es nutzen?
Und es gibt auch await
und __await
(resumable
, yield
und __yield_value
auch) keywords hervorgehoben, dass in Visual Studio. Was ist der Unterschied? Vielleicht nicht von allen Compilern unterstützt diese keywords oder unterstützt getrennt?
gcc
, clang
sind es akzeptiert? Oder nicht akzeptiert, und ich kann nur Makros verwenden, die für jede Plattform einzeln.
- Nein, nicht alle Compiler unterstützen
async
oderawait
syntax. GCC und CLang sind nur 2 von vielen Compilern, die es gibt. Sie sollten überprüfen, Greenhills, IAR, Keil und Visual Studio um einige zu nennen. - Die llvm - & clang Umsetzung ist im Gange : siehe twitter.com/Eric01/status/867473461836263424 (24 Mai 2017 : "Coroutinen sind jetzt in die Klappern Kofferraum!")
Du musst angemeldet sein, um einen Kommentar abzugeben.
async
undawait
sind Spracherweiterungen vorgeschlagen von Microsoft mit mehreren Revisionen, aber aktuell ist N4134. Das hat noch nicht akzeptiert in der Norm.Den Vorschlag dagegen ist, wie viele andere, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0158r0.html aufgrund nicht vollständig gebacken und nicht umfassend erforscht in einem TS und es gibt konkurrierende Vorschläge wie N3985 schlägt vor, die Coroutinen implementiert werden können, die innerhalb der bestehenden Sprache-standard.
Meines Wissens, die einzigen compiler, die tatsächlich unterstützt async/await ist MS Visual Studio.
Als ein update, klammerten 5.0 wurde die Unterstützung für den aktuellen Entwurf co-Routinen Vorschlag https://isocpp.org/files/papers/N4663.pdf das wurde nun angenommen als ein TS und geht mit einem Auge in Richtung der C++ - 20 standard.