On Fri, Feb 20, 2009 at 12:28 PM, Thorsten Ottosen
- What is your evaluation of the design?
The design seems sound. I really, really want to keep the operator syntax, using the pipe symbol, but this should not be the only or primary way to access the functionality, since syntax is not general enough for the general case. The 'ed naming is not good, and for consistency across Boost the _view naming should be used. However, in my mind map each of the adaptors is a verb rather than a noun, so the expression should read as rng | sort | unique rather than rng | sort_view | unique_view Whereas when the function invocation syntax is used the _view naming seems to express the intent more clearly. ie unique_view( sort_view( rng ) )
- What is your evaluation of the implementation?
I haven't looked at the implementation in detail, but it seems well behaved, appropriate detail hidden etc.
- What is your evaluation of the documentation?
Adequate but sparse. The nature of the lazy evaluation could be made more prominent, and the mapping of adaptors to existing Boost or STL algorithms specified, and maybe tabulated.
- What is your evaluation of the potential usefulness of the library?
Hugely useful, and becoming increasingly necessary. Ranges rather than iterators are becoming the focus of thought, and this library is beginning to look like a glaring omission from Boost.
- Did you try to use the library? With what compiler? Did you have any problems?
I've been using various snapshots from the vault for months, under GCC 3.4.4 and MSVC 8. I haven't noticed any probs, but my use does not constitute comprehensive coverage.
- How much effort did you put into your evaluation? A glance? A quick - reading? In-depth study?
More than a quick glance, close to in depth study, but patchy.
- Are you knowledgeable about the problem domain?
No more than average.
- Do you think the library should be accepted as a Boost library?
YES YES YES YES YES!
1. John Torjo's range lib
http://rangelib.synesis.com.au/libs/boost-rangelib-20040913.zip http://torjo.com/rangelib/index.html
I looked at this too, although I had not been aware of its existence until
this review invitation mentioned it. I'd say Neil's is a better cleaner implementation. Why did John's lib not get into Boost? Thanks, Rob.