Should this work?

Jack Reeves jackw_reeves@hotmail.com
Tue Aug 13 01:42:00 GMT 2002


>
>	std::cout << os.str().end() - os.str().begin() << std::endl;
>}
>
>It looks like os.str().end() and os.str().begin() are iterators over
>different sequences, so you get some strange results. It's easy to fix
>by using a temporary
>
>string temp = os.str();
>
>but I was wondering if it exhibits the correct behaviour without the
>temporary?
>
The behaviour is undefined without the temporary: the str() function returns 
a string 'object' (not a reference to a string). Therefore, the two calls to 
str() produce different objects, the two iterators refer to different 
sequences, and the subtraction yields an undefined result.
Whatever the behavior - it is 'correct' - but it is also probably not
what you want.

Jack


_________________________________________________________________
MSN Photos is the easiest way to share and print your photos: 
http://photos.msn.com/support/worldwide.aspx



More information about the Libstdc++ mailing list