Boost logo

Boost :

From: Pavel Vozenilek (pavel_vozenilek_at_[hidden])
Date: 2004-03-19 17:53:08


The review of Indexed Set library, written by
Joaquín M López Muñoz starts today (March 20)
and runs for 10 days.

Latest version (9.4) of the library is available on:
http://groups.yahoo.com/group/boost/files/indexed_set.zip
(328 kB)

What it is?
  indexed_set is generic, STL compliant container
  providing one or more views on its data. These views
  allow to use data sorted according to different criteria.
  Change in container data is automatically
  propagated into all views.

  How many views and what ordering is applied is
  specified in declarative way, as template parameter.

What it is good for?
  - it can replace multiple collections of data and
    hand-written code keeping them in sync.
  - it can replace standard containers (as std::set or
    std::list) if these may not meet future reqirements.
  - it can serve as basic for other libraries.
    For example RTL (relational tables library) may use
    indexed_set to hold its data.

Other features of indexed_set:
  - sorting can be performed on result of member function
    (similar to calculated indexes in RDBMS).
  - indexed_set can be used as 'wrapper' over other data
    structures, e.g you can see data in std::vector
    as being sorted in set-like structure (but without
    structures being synchronized).
  - many, many others ...

Future development:
  - planned functionality is described on its own page
    in documentation.
  - indexed_set may also implement access to its data
    in the same way as std::deque, with random O(1) access

History of the project:
  - it started as 'bimap' library more than year ago,
  - some two dozen iterations were released,
  - several Boost people expressed their interest
    or did suggest features.

Boost-wide reusable parts of the library:
  - indexed_set includes (nearly verbatim) copy
    of Andrei Alexandresu ScopeGuard. It is intended
    as stop-gap until Boost wide library emerges.
  - maybe auto_space.hpp can be liften into utilities.

Portability:
  - see document page for list of compilers and their issues
  - Can someone try to run tests under release mode of VC 6.5?
    We got different results with different machines.

Word from the autor:
  "Thank you for reviewing indexed_set. There are several
  points, mostly concerning naming, that I'd like to be discussed
  during the review. You can find these at the URL

  http://groups.yahoo.com/group/boost/files/indexed_set_review_notes.html

  If you evaluate the library and deem it acceptable for
  Boost, please walk the extra mile and express your opinions
  about the issues brought forward in the review notes.
  Naming issues are quite sensitive, and I'd like to reach
  as general a consensus as possible."

Your review comments are welcomed. Found problems
and suggestions for documentation are highly
sought. Requests for new features requests may
shape way indexed_set will evolve in future.

As naming questions can generate lot of mail-list traffic,
I'll start separate thread to deal with them.

/Pavel


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk