Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


On 09/28/2012 01:46 PM, Noel Grandin wrote:
I don't really understand the point of not being able to mutate OUString
in-place, but being able to overwrite it via the assignment operator?

It seems to me it should be one or the other.
Either OUString is immutable, and it cannot be assigned to, except via a
constructor, or it is mutable, and we can pretty much throw away
OUStringBuffer.

Note that the rtl string functionality had originally been designed, arguably somewhat naively, after java.lang.String. On the Java platform, immutability of String is an important security measure. While that argument is irrelevant in a C/C++ context, immutability is also an important concept when reasoning about multi-threaded code. Therefore, the distinction between OUString and OUStringBuffer IMO does make sense after all.

(The confusion about apparent mutability that arises from OUString's split into a smart-pointer and the actual payload has already been covered in this thread.)

Stephan

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.