Como você implementa Coroutines em C ++?

Eu duvido que isso possa ser feito de forma portável, mas existem soluções lá fora? Eu acho que isso poderia ser feito criando uma pilha alternativa e redefinindo SP, BP e IP na entrada da função, e obtendo o salvamento do IP e restaurando o SP + BP. Destrutores e segurança de exceção parecem complicados, mas solucionáveis.

Já foi feito? Isso é impossível?

questionAnswers(17)

yourAnswerToTheQuestion