
"John Torjo" <john.lists@torjo.com> wrote in message news:418F4161.7050202@torjo.com... | Dear boosters, | | I have updated the Iterable Range Library (formely known as Range | Templates Library). First let me say that I think the library is ready for a review. (I think we need two people to say so by the new submission procedure). Some comments: 1. I prefer a more explicit version of a.. r.begin(new_begin) - resets the range's begin a.. r.end(new_end) - resets the range's end ie, I would like to see set_begin(...). // STL version std::transform( v1.begin(), v1.end(), v2.begin(), std::back_inserter(v3), std::max<int>); // rng:: version rng::transform( v1, v2, std::back_inserter(v3), std::max<int>); -------------------- initially an iterator would be enough in place of v2. So in some sense I think you should mention that you have make the requirement a bit stricter. 3. The docs for The i_ or i_param shortcut could be better. 4. "The coll_find is a shortcut for finding an element in a collection (non-associative array). ". The example then shows a map. Isn't a map an associative container? 5. some more docs on range adapters should be added. As a minimum requirement we need the synopsis of transformed() etc so we can see what it returns and takes. I some sense you have a very good toturial...now we need the reference docs. 6. from some of the sorce files, you seems to be using r.begin() instead of begin(r). 7. "to_end: return the [found, container.end()) range (this is the default" how do you implement defaults on function templates??? 8. have you thought about flags for error-strategies: find<or_throw>( v, 5 ); find( v, 5 ); find<to_end,or_throw>( v, 5 ); -Thorsten