Boost logo

Boost Users :

Subject: [Boost-users] Formal Review: Boost.RangeEx
From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2009-02-20 07:28:36


Dear Developers and Users,

It's my pleasure to announce that the review of Neil Groves' RangeEx
library starts today and lasts until March 3, 2009.

What is it?
+++++++++++

The library provide two very useful extensions to the range library

1. Range-based algorithms. E.g.

    boost::sort( rng );

which is a convenient wrapper of instead of

    std::sort( boost::begin(rng), boost::end(rng) );

But the new interface also allows for more expressive code because
(on the fly) composition of algorithms suddenly is possible.

2. Range adaptors. E.g.

         std::vector<int> vec = ...;
         boost::copy( vec | boost::adaptors::reversed,
                      std::ostream_iterator<int>( std::cout ) );

where the expression "vec | boost::adaptors::reversed" wraps the
iterators of the range on the left in reverse iterators. The library
provides a wide range (no pun intended) of Range adaptors, and they
are a powerful way to create ranges on the fly and pass them to algorithms.

Getting the library
+++++++++++++++++++

The library may be downloaded from

   http://www.cs.aau.dk/~nesotto/boost/range_ex.zip

or from the Boost vault under "Algorithms". The docs may be browsed
online here

   http://www.cs.aau.dk/~nesotto/boost/libs/range/

Please note that the documentation is integrated with the current Range
ilbrary. Therefore the relevant sections for the review is

   http://www.cs.aau.dk/~nesotto/boost/libs/range/doc/adaptors.html

and

   http://www.cs.aau.dk/~nesotto/boost/libs/range/doc/algorithms.html

The code may be browsed here:

   http://www.cs.aau.dk/~nesotto/boost/boost/range/

Notice the library is header only
(exception: the adaptor tokenized() depends on Boost.Regex).

Writing a review
++++++++++++++++

If you feel this is an interesting library, then please submit your
review to the developer list (preferably), or to the review manager.

Here are some questions you might want to answer in your review:

- What is your evaluation of the design?
- What is your evaluation of the implementation?
- What is your evaluation of the documentation?
- What is your evaluation of the potential usefulness of the library?
- Did you try to use the library? With what compiler? Did you have any
problems?
- How much effort did you put into your evaluation? A glance? A quick -
reading? In-depth study?
- Are you knowledgeable about the problem domain?

And finally, every review should answer this question:

- Do you think the library should be accepted as a Boost library?

Be sure to say this explicitly so that your other comments don't obscure
your overall opinion.

Special considerations
++++++++++++++++++++++

Various RangeEx like libraries have been implemented in the past. You
might want to compare with those libraries when you form your oppinion:

1. John Torjo's range lib

   http://rangelib.synesis.com.au/libs/boost-rangelib-20040913.zip
   http://torjo.com/rangelib/index.html

2. Adobe's ASL libraries include range-based algorithms:

   http://stlab.adobe.com/group__algorithm.html

I'm looking forward to your review.

best regards

Thorsten, Review Manager


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net