Boost logo

Boost Users :

From: Venikov, Andy (avenikov_at_[hidden])
Date: 2007-12-21 11:46:55


Let say we have

 

struct A {...}; struct B {...}; struct C {...};

 

And we define a container of objects that hold these three structures:

 

 

struct Whole { A a; B b; C c; };

 

multi_index_container<Whole,

                   indexed_by< ordered_unique< member<Whole, A,
&Whole::a> > >,

                   indexed_by< ordered_unique< member<Whole, A,
&Whole::b> > >

>

container;

 

As you can see only a and b are the keys, c is just a member.

 

Let's also say that we've got an iterator "it" pointing to an element
in the container

(through what index the iterator has been retrieved is immaterial at
this point).

 

And we want to modify "c" member of that element.

 

Is this safe:

 

*const_cast<C **>(&it->c) = <new value of c> ???

 

I know that one can use "modify" member function, but it seems an
overkill to have to create a separate

functor just to update a non-key element. Plus, member does additional
checks on collision, and the

performance may suffer as a result.

 

Thanks,

     Andy.



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net