On Thu, Mar 4, 2010 at 5:40 PM, Kenton Varda <[email protected]> wrote:

> Sean:  The Google-internal version of this function wouldn't work for you
> because we actually use an alternate (non-COW) string class.  Also, our
> resize function violates aliasing rules, which may be a problem if you don't
> use -fno-strict-aliasing.
>
> On Thu, Mar 4, 2010 at 10:09 AM, Jason Hsueh <[email protected]> wrote:
>
>> I don't know about any other implementations, but a word of caution: I
>> think that this would be especially complicated/hacky for gcc 4.3, which as
>> I recall switched to a copy-on-write implementation for std::string. You'd
>> probably want to make sure that the performance difference is really worth
>> it.
>
>
> Actually GCC introduced a COW string implementation I think in version 3.
>  Last I heard they were planning to switch back, since it turns out COW
> strings are actually slower in common practice.  Maybe 4.3 was when they
> switched back to non-COW?
>

Oh whoops. Maybe I just made the version number up entirely...


>
>
>>
>>
>> On Thu, Mar 4, 2010 at 9:25 AM, Sean Rhea <[email protected]> wrote:
>>
>>> All,
>>>
>>> Does anyone have an implementation of STLStringResizeUninitialized
>>> (see stl_util-inl.h) for gcc version 4.3.2?
>>>
>>> The inability to use std::string as a zero-copy buffer has been a
>>> long-running annoyance of mine, and I'm really excited by the
>>> string_as_array function provided in stl_util-inl.h.  Unfortunately,
>>> it isn't worth as much without STLStringResizeUninitialized, since you
>>> still end-up zero-filling the array (via resize) before writing into
>>> it.
>>>
>>> I understand why Google wouldn't want to include their version by
>>> default, as until the standard catches up it will by necessity be an
>>> ugly hack, but it would be great to have an implementation for my own
>>> use.
>>>
>>> As far as I can tell, vector<char> suffers from the same problem (no
>>> way to resize without zero-filling the array).
>>>
>>> Sean
>>> --
>>> "I refuse to accept the idea that the ‘isness’ of man’s present nature
>>> makes him morally incapable of reaching up for the eternal ‘oughtness’
>>> that forever confronts him." --MLK
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Protocol Buffers" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected]<protobuf%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/protobuf?hl=en.
>>>
>>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Protocol Buffers" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<protobuf%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/protobuf?hl=en.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to