Für diejenigen, die wissen möchten, wie sie Coroutinen in C++ portabel nutzen können, müssen Sie auf C++ 17 warten. Das Normungsgremium arbeitet an dem Feature, siehe N3722 paper. Um den aktuellen Entwurf des Papiers zusammenzufassen, statt Async und Await, werden die Keywords fortsetzbar sein und warten.
Werfen Sie einen Blick auf die experimentelle Implementierung in Visual Studio 2015, um mit Microsofts experimenteller Implementierung zu spielen. Es sieht nicht so aus als ob clang eine Implementierung hat.
Es gibt ein gutes Gespräch von Cppcon Coroutines a negative overhead abstraction skizzieren die Vorteile der Verwendung von Coroutines in C++ und wie es die Einfachheit und Leistung des Codes beeinflusst.
Gegenwärtig müssen wir noch Bibliotheksimplementierungen verwenden, aber in naher Zukunft werden wir Coroutinen als Kern-C++ - Funktion haben.
Update: Sieht so aus, als ob die Coroutinimplementierung es nicht in C++ 17 schafft, aber es wird eine technische Spezifikation sein (p0057r2). Auf der Oberseite sieht es so aus, als ob sie Unterstützung beim Claming mit dem Flag -fcoroutines_ts und in Visual Studio 2015 Update 2 ist. Den Keywords wird auch ein co_ vorangestellt. Also co_await, co_yield usw.
nur darauf hinweisen wollte, dass Koroutinen möglich ist in C++. Boost ist eine Möglichkeit. Die andere ist die als technische Spezifikation mit C++ 17 ratifizierte Koroutine. Es gibt bereits zwei Compiler mit Unterstützung (VC14 & Clang), und der TS wird es wahrscheinlich in die Sprache nach C++ 17 schaffen. Siehe meine Antwort für Details. – Atifm
Für C-Programmierer, hier ist ein Artikel, Coroutines in C von Simon Tatham, der eine Reihe von Ansätzen hat. http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html einige sind komplexer als andere. –