Germán Diago
2015-10-03 11:41:18 UTC
Hello everyone,
I do not mean to start a flame here, but I am still wondering why the
coroutines from
P0057R0 are still being considered.
For what it is worth, I find the paper from Christopher Kohlhoff very
clarifying, very well
reasoned, and providing alternatives for all the important use cases from
P0057R0 with
superior implementations.
I still share the same concerns as before for P0057R0, mainly:
- mandatory type erasure.
- as Christopher mentions, embedding a scheduler into the language is not a
nice thing.
- viral await is also something to be aware of.
On top of that, he shows alternatives for implementations:
1. Generators (reified and type-erased).
2. await.
You also have yield as an object, which I think can be of advantage in many
situations.
But my real question is, since I am not an expert:
1. There is something that can be done in P0057R0 that simply cannot be
done by resumable expressions + reasonable library support?
For me await/async + embedded scheduler is something like getting married
to an implementation detail that
a run-time must support. The mandatory type-erasure is not nice, compared
to being able to generate
what you would write by hand, a function object, which is what resumable
expressions do.
Am I missing anything here? As I say, my knowledge is quite limited in this
area.
I do not mean to start a flame here, but I am still wondering why the
coroutines from
P0057R0 are still being considered.
For what it is worth, I find the paper from Christopher Kohlhoff very
clarifying, very well
reasoned, and providing alternatives for all the important use cases from
P0057R0 with
superior implementations.
I still share the same concerns as before for P0057R0, mainly:
- mandatory type erasure.
- as Christopher mentions, embedding a scheduler into the language is not a
nice thing.
- viral await is also something to be aware of.
On top of that, he shows alternatives for implementations:
1. Generators (reified and type-erased).
2. await.
You also have yield as an object, which I think can be of advantage in many
situations.
But my real question is, since I am not an expert:
1. There is something that can be done in P0057R0 that simply cannot be
done by resumable expressions + reasonable library support?
For me await/async + embedded scheduler is something like getting married
to an implementation detail that
a run-time must support. The mandatory type-erasure is not nice, compared
to being able to generate
what you would write by hand, a function object, which is what resumable
expressions do.
Am I missing anything here? As I say, my knowledge is quite limited in this
area.
--
---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+***@isocpp.org.
To post to this group, send email to std-***@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.
---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+***@isocpp.org.
To post to this group, send email to std-***@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.