[fpc-pascal] Parameterless constructors are not allowed in records or record/type helpers
Maciej Izak
hnb.code at gmail.com
Sun Feb 5 16:54:23 CET 2017
2017-02-05 14:34 GMT+01:00 Ryan Joseph <ryan at thealchemistguild.com>:
> However, the constructor with default params does not work. I get the same
> error as before. {$modeswitch advancedrecords} is on.
>
> type
> MyRecord = record
> x: integer;
> constructor Foo (_x: integer = 0);
> end;
>
AFAIK this is by design. In theory "constructor Create;" is reserved for
record "Initializers" (which means initialization for managed fields of
record). Parameter less constructor doesn't have much sense for records.
Use "class function Foo: MyRecord ;" instead. Probably syntax "constructor
Create;" will be used for record initializers in next Delphi releases
(around 2018?). In FPC we have implemented this feature (not merged yet :
http://bugs.freepascal.org/view.php?id=30687 ) but as "class operator
Initialize(var a: MyRecord);".
--
Best regards,
Maciej Izak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20170205/863160b8/attachment.html>
More information about the fpc-pascal
mailing list