[fpc-devel] constref in Windows

Hans-Peter Diettrich DrDiettrich1 at aol.com
Sat Nov 20 19:10:24 CET 2010


Jonas Maebe schrieb:

>> Const is a pascal keyword which can mean for pascal "pass records
>> by reference".
> 
> Making it mean that would make a lot of code less efficient. It
> doesn't have that meaning for the i386 "register" calling convention
> either (and it cannot be made to mean that there, because that would
> break Delphi compatibility).

AFAIR Delphi treats the byval/byref issue as "compiler specific", so 
nothing can be broken - apart from code that is bound to an specific 
compiler.

>> If you need to pass a record by value to some system C routine then
>> don't mark that argument as const during the header convertion.
>> What is wrong?

A const record cannot be passed as a non-const parameter. This is the 
only difference between constref and var. Thus "const var" could have 
been used instead of a new "constref" keyword.

DoDi




More information about the fpc-devel mailing list