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
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to