On Wednesday, 26 March 2014 at 18:04:44 UTC, Ola Fosheim Grøstad
wrote:
On Wednesday, 26 March 2014 at 17:36:08 UTC, Andrei
Alexandrescu wrote:
I think requiring users to call empty before front on input
ranges is a concession we should make.
Then the name should change to "ready". It makes sense to
require the user to check that the range is "ready", but not to
check that it is "not empty". This will also make more sense
for async implementations that will block if "not ready".
IMO the whole interface needs rethinking if you want to
gracefully support async data streams where you need to
distinguish between: "ready" vs "empty", "front" vs
"firstavailable". Both quick-sort, merge-sort, filter and map
work well with async data streams.
Why not?
It is how iterators work in most OO languages.
--
Paulo