Wow, that sounds nightmarish.  Three different ways to store the string, pointers to buffers everywhere, and because it is so complex your string library needs to account for all possibilities because there&#x27;s no way anybody is going to want to manually twiddle with those strings.<p>If you get it right and hide all of the complexity from the user then it&#x27;s not quite as bad, although undoubtedly confusing the first few times someone inspects it in their debugger.