[fpc-pascal] Feature announcement: implicit generic function specializations

Mattias Gaertner nc-gaertnma at netcologne.de
Mon Apr 25 13:50:11 CEST 2022

On Mon, 25 Apr 2022 10:15:26 +0700
Hairy Pixels via fpc-pascal <fpc-pascal at lists.freepascal.org> wrote:

> For the case of types I understand we must specialize because we’re
> creating a new type each time and there is nothing to infer from the
> context, but for functions it’s backwards, that is we know the types
> being used, we just need to choose the right function based on those
> types.

IMO the important difference is that alias types already safes most
inline specializations.
There is no alias for generic functions, which is why implicit function
specialization is so handy.

> type
>   generic TArrayHelper<T> = type helper for array of T
>     procedure Add(value: T);
>   end;
> var
>   a: array of integer;
> begin
>   a.Add(1);  // specialize TArrayHelper<Integer> since the compiler
> clearly knows the type used is Integer. end.

IMO that is only useful with modeswitch multihelpers.

All these modeswitches makes it harder to learn Pascal.


More information about the fpc-pascal mailing list