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 _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost