"Marshall Clow" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> "Joe Gottman" <[EMAIL PROTECTED]> wrote:
> >Suppose I have a vector<Foo *> and I want to use indirect_iterator to
create
> >an iterator that allows the user to read but not modify the objects
pointed
> >to by elements of the vector. In other words, I want to do the
following:
> > typedef /*whatever */ my_iterator;
> > my_iterator it(theVector.begin());
> > const Foo &foo = *it;
> >
> > But I want
> > *it = Foo();
> >to fail. Also, if possible I would like this new type to interact with
> > indirect_iterator<vector<Foo *>::iterator>
> >in the expected way.
> >
> > I'm sure this is possible, but the documentation doesn't really say
how to
> >do it.
>
> is there some reason you can't use const_iterator?
>
const_iterator doesn't do what I want. Consider the following code:
vector<Foo *>::const_iterator theIterator = myVector.begin();
**theIterator = Foo();
This code should compile fine, since it's not changing the value of
*theIterator. This is why most smart pointers have operator* and operator->
defined as const member functions.
Joe Gottman
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost