
Gokulakannan Somasundaram escribió:
Hi, First of all thanks for the great library, which had reduced our development time by a lot. In boost multi-index, we currently have almost all the indexing concepts integrated. Hence i am requesting for a new feature called conditional indexes, where in an index/view inside multi-index will only index a portion of the entries inside the entire multi-index(Say something that satisfies a functor). This is in resemblance to the partial indexes in Postgresql. I feel that would provide elegant solutions to lot of issues without forming round about solutions. For example i have a requirement where in there are two sets of data with the same search criteria, but different eviction criteria
Say i have two sets of data with same search condition, but one set needs a MRU(Most Recently Used) list of 100 and the other set requires a MRU of 200. Say the entry is like this [...]
The general request (composing partial indices to cover the whole
sequence) is
interesting and a considered it some years ago, though I never found the
time
to implement it (and I'm suspicious it might be a little too "smart" for
the general
public).
In any case, I think you can solve your particular problem without that
feature
in a convenient manner. Please see the attached example and report whether
it satisfies your needs.
Best regards,
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
#include <algorithm>
#include
student_list;
public:
typedef student_list::iterator iterator;
student_mru_list(std::size_t max_male,std::size_t max_female):
max_male(max_male),max_female(max_female),
size_male(0),size_female(0){}
void insert(const student& s)
{
bool is_male=(s.sex=='m');
std::size_t& size =is_male? size_male :size_female;
std::size_t max_size=is_male? max_male :max_female;
iterator it =is_male? male_begin():female_begin();
std::pair