[fpc-devel] Question on constref
Michael Van Canneyt
michael at freepascal.org
Thu Feb 2 10:22:27 CET 2023
On Thu, 2 Feb 2023, Ondrej Pokorny via fpc-devel wrote:
> On 02.02.2023 10:15, Michael Van Canneyt via fpc-devel wrote:
>> On Thu, 2 Feb 2023, Ondrej Pokorny via fpc-devel wrote:
>>> I myself cannot think of any real use case of constref other than hacks
>>> like the FreeAndNil in recent Delphi versions:
>>>
>>> procedure FreeAndNil(const [ref] Obj: TObject);
>>>
>>> that needs the ref because it changes it to nil (so is not really a const
>>> - it used to be an untyped var). As a result FreeAndNil allows you to
>>> happily pass read-only properties to it that are then nilled.
>>
>> Which is a clear violation of the concept of Const... :/
>
> Exactly.
Probably an ill-advised "fix" to the problem that FreeAndNil accepted an untyped var
and you could basically pass anything.
Michael.
More information about the fpc-devel
mailing list