Ben Grasset <operato...@gmail.com> schrieb am Mi., 19. Juni 2019, 16:21:

> On Tue, Jun 18, 2019 at 11:08 AM Sven Barth via fpc-devel <
> fpc-devel@lists.freepascal.org> wrote:
>
>> Those operators can't be inlined, because they're called from helper
>> code, not from the compiler directly. The LLVM backend won't change
>> anything here.
>>
>
> Is there any real purpose to implementing `Copy` versus just implementing
> `operator :=` (or `operator Implicit` when in {$mode Delphi})? Those can be
> inlined, and in practice are used in essentially all the places `Copy` is.
> By which I mean, IIRC you never really see calls to `fpc_copy_proc` in the
> generated assembler unless you've specifically implemented `Copy` yourself.
>

It wouldn't matter if the function is called Copy, operator:= or
"jdjfjsje". Once a copy management operator is defined the record type is
considered "managed" and thus all assignment operations are routed through
fpc_copy_proc just as is the case when a record contains at least one field
of a managed type (e.g. AnsiString).
Also using operator:= would go against the principle that existing,
internal operators can't be overloaded.

Regards,
Sven

>
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to