Boost logo

Boost :

Subject: [boost] [Review] RangeEx review extended to the 10th of March
From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2009-03-03 14:53:29


Dear Developers and Users,

The review period is extended one week. If you find this library
interesting, please submit a review.

The discussion so far may be found here:

http://archives.free.net.ph/message/20090220.122836.73bdbd04.en.html

Below you will find a description of the library and information
on how to write a review.

best regards

Thorsten, review manager

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 list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk