[fpc-devel] Question on constref
Sven Barth
pascaldragon at googlemail.com
Wed Feb 1 22:38:54 CET 2023
Am 01.02.2023 um 15:40 schrieb Hairy Pixels via fpc-devel:
>
>> On Feb 1, 2023, at 8:27 PM, Michael Van Canneyt via fpc-devel <fpc-devel at lists.freepascal.org> wrote:
>>
>> That's exactly what Adriaan is saying. With const the compiler can choose.
>> With constref, you force it not to copy. But this is not so efficient for
>> small parameter sizes.
> So const will always pass records that are over a certain size by references? That’s good to know since “const” is more pleasant to look at it than constref. :)
Which types are passed by-value or by-reference when using const is
determined by the size of the record and the types of the fields based
on whatever the corresponding ABI defines (e.g. the x86_64 Sys V ABI is
rather explicit about some field combinations). The compiler will
however not switch between passing a specific type once by-value and
another time by-reference.
Regards,
Sven
More information about the fpc-devel
mailing list