On Mon, Sep 12, 2011 at 2:25 AM, Jürgen Hestermann
<juergen.hesterm...@gmx.de> wrote:
>
>
> Flávio Etrusco schrieb:
>>
>> "+=" can't be efficiently implemented with two operations (since
>> concatenating the operand would be unexpected to the user...).
>
> Why not use "inc(x,y)"?
> _______________________________________________

AFAICS it's not possible either. (Notice I'm talking about operating
on an 'object').

What I meant is:
    MyStringBuffer += 'String';
Is replaced with:
    MyStringBuffer := MyStringBuffer + 'String';
What if is was:
    MyStringBuffer := OtherStringBuffer + 'String';

So concatenating the 'String' in the StringBuffer's internal buffer
would be unexpected IMO (but maybe just making it safe, even though
unexpected, would be ok).
Also, since the assignment operator for same type can't overload, I
can't make adjustments to avoid "sharing" the buffer so I'm left with
using an AnsiString as buffer, or use some self-pointing canary which
must be checked on every buffer operation.

-Flávio
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to