> > I mean that code such as
> >
> > path p2("foo/bar");
> > p2.begin() = p2.end();
> > path::iterator it = ++p2.begin();
> >
> > is legal.
>
> Ah, yes, I see what you mean.  But that is a general problem with the
> design of iterators, isn't it, rather than a problem with
> path?  path::begin() can't return a const iterator; iteration (operator++,
> operator--) wouldn't work!

I believe begin() should return a const iterator, you then assign it to a
non-const iterator ("it" above) and then inc/dec the copy.

Glen