Re: Problem with using char* to return string by reference
On Wed, 11 Jun 2008 07:11:56 +0200, "Alf P. Steinbach" <alfps@start.no>
wrote:
* Doug Harrison [MVP]:
At least I don't know of any implementation for which this would fail, but
people will object that std::string may not use contiguous storage.
It's safe, and contigous storage for string will be guaranteed in C++0x (voted
into WP a few years ago, at Lillehammer -- I recall the location because I'm
Norwegian!, and forget the exact year because time just slips by... :-) ).
As of late last year (draft N2461) the wording was, in ?21.3.1/3,
"The char-like objects in a basic_string object shall be stored contiguously.
That is, for any basic_string object s, the identity &*(s.begin() + n) ==
&*s.begin() + n shall hold for all values of n such that 0 <= n < s.size()."
Thanks, that's good to hear.
P.S. I can sympathize with your memory issue, because I now remember that
about a year ago, I linked to the defect report which contained similar
language. Funny how I forgot that and instead remembered the
contentiousness that made me look it up in the first place. <g>
--
Doug Harrison
Visual C++ MVP