|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2006-01-31 13:56:54
"Eric Niebler" <eric_at_[hidden]> writes:
> Greer, Joe wrote:
>>
>>> -----Original Message-----
>>> On Behalf Of David Abrahams
>>>
>>> std::string str(30, 0);
>>> someoldcapi(&str[0]);
>>> str.resize(str.find(0));
>>> str.find(...)
>>>
>>
>> I didn't think strings were guaranteed to be contiguous, or did that get
>> slipped in when I wasn't looking?
>>
>
> Sadly, you're correct. strings are not guaranteed to be contiguous. I'm
> not aware of a std library that takes advantage of that leeway, though.
...and you're not allowed to modify the array that data() points at; drat.
But this is all beside my point: we could easily provide a
contiguous_string library (maybe it just forwards basic_string and
basic_wstring on implementations where the characters *are*
contiguous) that would serve this purpose.
...or use vector<char> ;-)
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk