
Rogier van Dalen skrev:
Dear Neil,
Many lazy adaptors are desirable. I would continue to add more as time permits. My focus is on producing a good foundation for this version. The reviews are giving me a clearer need of what people want from the library.
Fair enough. This will be fine if many reasonable algorithms can be implemented within range_ex. However, could you state how you would integrate lazy merge() or anything that takes two or more ranges in operator| syntax? The function syntax would be: merged(rng1, rng2) I believe that the '|' syntax, however cute (I agree there!) is less flexible and less obvious than the function syntax. Therefore, I think the function syntax should be the primary one.
Currently merge(), transform(), and the set algorithms use output iterators as a substitute for return values. Rephrasing them as functions would also get rid of output iterators, which would improve their interface.
I tend to agree. E.g. an algorithm like transform(-) should return a range. Or perhaps we need a new syntax to enable rng && rng2 | transformed(binary_fun()) -Thorsten