[fpc-devel] generics defy scoping rules -- Intended?
Martin Frb
lazarus at mfriebe.de
Tue Nov 25 15:55:46 CET 2025
On 25/11/2025 14:19, Sven Barth via fpc-devel wrote:
>
>
> Yes, because in fact they don't have the same name. The name of a
> generic with a single parameter is essentially "TFoo<>" while that of
> a generic with two parameters is "TFoo<,>".
>
> The amount of generic parameters is part of the type or routine name.
>
Thanks, which just for confirmation brings up a follow up question. (I
haven't used generic function much yet, so maybe I miss something)
function Foo (aParam: Integer): integer;
generic function Foo<T>(aParam: t) : integer;
Those are 2 different function too? (not an overload? because "T" could
be integer in same cases)
Do you then always have to call the generic using
specialize Foo<integer>(1)
?
I seem to remember a discussion about adding automatic specialization?
But then
foo('abc') // would be clear, to specialize with string
but
foo(1) // could be either
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20251125/0a06b43c/attachment.htm>
More information about the fpc-devel
mailing list