OUString is mutable?

Caolán McNamara caolanm at redhat.com
Fri Sep 28 05:03:01 PDT 2012


On Fri, 2012-09-28 at 13:46 +0200, Noel Grandin wrote:
> Hi
> 
> 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.

Consider OUString as a smart const pointer to an immutable rtl_uString.

i.e.
const char *pFoo;
pFoo = "hello";
pFoo = "world"; //ok
pFoo[0] = 'A'; //won't compile
const_cast<char*>(pFoo)[0] = 'A'; //compiles but evil

C.



More information about the LibreOffice mailing list