This is the mail archive of the
mailing list for the libstdc++ project.
Re: [RFC] libstdc++/8780
- From: Gabriel Dos Reis <gdr at integrable-solutions dot net>
- To: Paolo Carlini <pcarlini at unitus dot it>
- Cc: "libstdc++ at gcc dot gnu dot org" <libstdc++ at gcc dot gnu dot org>
- Date: 02 Dec 2002 14:09:33 +0100
- Subject: Re: [RFC] libstdc++/8780
- Organization: Integrable Solutions
- References: <3DEB5A2E.firstname.lastname@example.org>
Paolo Carlini <email@example.com> writes:
| The compilation fails with any v3. This seems due to the fact that,
| whereas in v2, for std::vector, simply:
| typedef value_type* iterator;
| in v3:
| typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator;
| Submitter cites 24.1,(1,2) as implying that the current implementation is
| non conforming.
The submitter is confused. I would like to see the exact wording from
those paragraphs that may imply that a vector<>::iterator ought to be
| This seems to me non at all obvious! It is just a QoI issue?
| (in few other widespread implementations iterator *is* just a pointer)
This is a QoI. I would expect a decent implementation to distinguish
a vector<>::iterator from a plain pointer.
| Much more generally, I'm interested in knowing why the implementation
| of iterator was changed in such a way in the transition between v2 and v3.
I don't know of the reasons, but I suspect "increase in type safety"
and aid to debugging.