|
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