[fpc-pascal] Option type

denisgolovan denisgolovan at yandex.ru
Wed Jun 2 13:28:46 CEST 2021



> Well as already discovered type like strings can not go into a "record case"
> 
> But... The above record is anyway of constant size. I.e. the memory for
> the field is always included, even if it is not used.
> 
> Since the "false" block is empty, you can do
> 
> type
> generic TOption<T> = record
> IsSome:boolean;
> some: T;
> end;
> 
> It is not as expressive to the reader of the code. But it leads to the
> same data in memory.

Yes. 
Except that "some" is still initialized with something (some default) and dropped and copied and assigned despite conceptually being empty.

-- Regards,
Denis Golovan


More information about the fpc-pascal mailing list