[fpc-pascal] How to use generics and meta class?

Joao Morais l at joaomorais.com.br
Thu Feb 27 22:43:15 CET 2014


Em 27/02/14 09:39, Sven Barth escreveu:
> Am 27.02.2014 13:37, schrieb Sven Barth:
>> Am 27.02.2014 12:12, schrieb Joao Morais:
>>> Em 25/02/14 05:14, Sven Barth escreveu:
>>>> A generic is by definition not a fully existant type.
>>>
>>> Plans to include generics as a real type for class attributes? 
>>> Something like the Java world:
>>>
>>> generic TMyGeneric<T: TMyType>  <<-- this is the real type
>>> specialize TMyGeneric<TSomeDescendantType>  <<-- only for type 
>>> safety, discarded after compiling
>> No, because generics in FPC/Delphi work more like templates in C++ 
>> than generics in Java/.Net (in these two it works, because of their 
>> "everything is an object" approach, we don't have that in Pascal).

Correct. The feature I was talking about is something like:

generic TMyGeneric<T: TMyType>

And TMyType is a class. In this case the compiler knows I am talking 
about a generic for a class type and a "generic as Java" becomes possible.

> Addendum: this does not exclude the compiler from trying to optimize 
> this if the type parameter is indeed a class type. But this will be 
> transparent for the user and will have a few restrictions. It does 
> however not change that generics aren't full types.

:/

Maybe in the near (or not so near) future, these two approaches 
(templates and generics like in Java) may live together? I mean: is this 
technically possible?





More information about the fpc-pascal mailing list