From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2003-05-29 12:55:02
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
(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
of map-like containers. Different instantiantion parameters yield
behaving like all the STL associative containers (though the power of
library does not lie in this, of course).
If the compiler supports partial specialization, the suite of lookup
is duplicated to allow for "compatible" comparisons: for instance, one
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
so I thinked it could be of interest to Boosters in its actual form.
look for multiindex.zip for the library and a rather extensive example
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