Re: map/set iterator not incrementable error - VS2005
"VC >" <VC@RT.COM<NoSpam> wrote in message
news:uhdhTBIfHHA.4136@TK2MSFTNGP02.phx.gbl...
This is a working 32 bit code.
I am getting this error after porting to 64 bit.
Then print out pID before and after casting to size_t. My
bet is you'll be horrified at what's happening there.
(size_t gets bigger on 64-bit machines.)
"P.J. Plauger" <pjp@dinkumware.com> wrote in message
news:SNidneIn2Ymik4DbnZ2dnUVZ_hynnZ2d@giganews.com...
"VC >" <VC@RT.COM<NoSpam> wrote in message
news:uj1vxjEfHHA.1220@TK2MSFTNGP03.phx.gbl...
I get the assert "map/set iterator not incrementable" in my app for the
debug build for the following piece of code
Sample &Samples::GetSample(SQLPOINTER pID)
{
Samples::iterator b_it = begin();
STD_::advance(b_it, reinterpret_cast<size_t>(pID)); // Assert occurs
here
return b_it->second;
}
I added a check to see if I am at the end() iterator before calling
advance but still no luck.
So how big is pID? If advancing b_it pID times takes you past end()
you'll get this assert (as well you should)?
P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com