This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] libstdc++/8780


Joe Buck wrote:
...
This should be an FAQ, along with suggestions on how users can fix their
code that implicitly assumes that std::vector<T>::iterator is T*.  Even
programmers who know better tend to make this mistake when they develop
code on compilers that use such an implementation.

The short answer is that, given
    std::vector<T>::iterator iter_T;

then
    &*iter_T

has type T* and points to the same object.  As the elements of a vector
must be contiguous, this works portably.
Unfortunately, it will not work for an iterator pointing at the end
of a container.

Regards
Martin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]