[fpc-pascal] Auto vars (again)
Ryan Joseph
ryan at thealchemistguild.com
Sun Aug 19 00:26:41 CEST 2018
> On Aug 18, 2018, at 11:04 AM, Ryan Joseph <ryan at thealchemistguild.com> wrote:
>
>> The solution which probably should be accepted by fpc team is default property without indexer:
>>
>> === code begin ===
>> property obj: T read fobj; default;
>> === code end ===
>>
>> with this property should be possible:
>>
>> === code begin ===
>> Writeln(o.ToString);
>> === code end ===
>
> How does that property work exactly? Making this work properly is the most important part but I never considered it. It sounds like “with” statements kind of.
Ok, I understand what you mean now. This is actually a really great idea for all sorts of other uses because it helps to unify namespaces between classes and prevent long.and.annoying() chaining of fields.
Btw why should this be a property? I know [] properties use the default keyword also but I don’t understand where this came from and it’s strange to name the [] property since the name is irrelevant. I would think you’d want to just put a modifier on the default field:
TAutoCreate<T: class> = record
_: T; default;
class operator Initialize(var a: TAutoCreate<T>);
class operator Finalize(var a: TAutoCreate<T>);
class operator Copy(constref a: TAutoCreate<T>; var b: TAutoCreate<T>);
class operator AddRef(var a: TAutoCreate<T>);
end;
just curious and I thought I’d ask.
Regards,
Ryan Joseph
More information about the fpc-pascal
mailing list