Boost logo

Boost :

From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2003-05-29 12:55:02


Hi all,

I'm (slowly) working on multiindex_set, an std::set-like container
supporting multiple indices, much in the spirit of a relational table.
On instantiation time, a tuple of comparison predicates is provided
as well as information on which of them are to be treated as unique
(no duplicates). The container provides "views" on each index that
behave
(to the maximum extent possible) as regular sets sorted by the
corresponding comparison predicate. A small utility is provided, named
less_by, for the (supposedly) usual case in which a comparison predicate

depends on only one of the fields of the value, which allows for
emulation
of map-like containers. Different instantiantion parameters yield
containers
behaving like all the STL associative containers (though the power of
the
library does not lie in this, of course).
If the compiler supports partial specialization, the suite of lookup
methods
is duplicated to allow for "compatible" comparisons: for instance, one
can
find an element giving only the field on which the comparison depends,
or, if some comparison depends on say names then a compatible predicate
can be feed that looks for initials (an example of this is provided).

So far, the library is say 75% complete, at least from my initial
specification,
so I thinked it could be of interest to Boosters in its actual form.
Please
look for multiindex.zip for the library and a rather extensive example
of
use. It compiles and works in MSVC 6.0sp5 and g++ 3.2 under Cygwin.
No docs yet, sorry.

Comments on the library are most welcome. Best regards,

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo


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