Boost logo

Boost :

From: Thomas Witt (witt_at_[hidden])
Date: 2005-11-18 13:53:11

Orjan Westin wrote:
> I have a question on the indirect_iterator, and what related standards say.

There is no standard that covers indirect_iterator as such.

> I assume this class is primarily aimed for use in algorithms, which is fine.
> An algorithm typically dereference an iterator to do its thing, be it
> comparing or passing the dereferenced iterator on to a function or functor.
> This is great.
> But it doesn't handle direct usage well.


> If I have an indirect_iterator i for, say, a pointer to std::string, I
> cannot treat it as any other iterator to string and empty the string with
> this call:
> i->clear();
> because the pointer operator is not changed.
> Instead you have to dereference it and use it as a reference:
> (*i).clear();

int main()
   std::string s("Foo");

   std::vector<std::string*> rgP;



   std::cerr << s << '\n';

Works for me what did I miss?

> Does anybody know if it does say anything on this subject, and why
> operator->() wasn't included in indirect_iterator?

It would be helpful if you would include compiler/platform boost version
in your report.



Thomas Witt

Boost list run by bdawes at, gregod at, cpdaniel at, john at