[fpc-devel] Templates / Generics

Micha Nelissen micha at neli.hopto.org
Mon Nov 7 23:10:52 CET 2005

On Mon, 07 Nov 2005 21:07:42 +0100
Marc Weustink <marc at dommelstein.net> wrote:

> Params are passed to a procedure define like
>    procedure MyProc(param, param, ..)
> Arrays are declared like
>    A: array[0..9] of ...
> And generics.... they are soly defined by the fact that a type has <> in it.

Well generics *are* a kind of "parameterised" type. When you choose types
for the parameters, then the type is fully defined, just like the result of
a not-with-outside-interacting procedure would be when it's parameters are
filled in. When you view it this way, Bram has a point.

I am still a proponent of a keyword btw, which I've documented at wiki:


(just scroll a little upwards). This is because it generalizes better to
function generics, I think that in "Max<T: TSomeType>(Foo: Type): T" the
last T feels "out-of-scope", while it doesn't when you have the generic
keyword because you're defining a "function generic(T) ..."

Of course, these are all minor details compared to actual implementation.


More information about the fpc-devel mailing list