[fpc-devel] Templates / Generics Syntax
Marc Weustink
marc.weustink at cuperus.nl
Fri Nov 4 10:47:42 CET 2005
Daniƫl Mantione wrote:
>
> Op Thu, 3 Nov 2005, schreef Mattias Gaertner:
>
>
>>Here is a proposal of the syntax:
>>
>>type
>> TGenericClass<T,F> = class
>> public
>> procedure Add(Item: T; Flag: F);
>> end;
>
>
> This syntax is almost impossible to implement since in one of your other
> mails the symbols to mark the parameters appear in regular source code:
>
> begin
> generictypeA<integer>.create
> end.
>
> It will be very hard for the parser to see the difference in advance
> between:
>
> variable<integer(another_var)
> generic_type<integer
>
> Only when the > symbol is parsed the result is known.
>
> Maybe the parser may be able lookup the type first and make a decision
> based on that, but it would be in the middle of a recursive expression
> parse designed for infix operators.
>
> Also in C++ this sometimes causes trouble where you need to change your
> code notation so the compiler eats it. I don't know if this proposal
> suffers from this mess, but we should avoid at all cost to import it into
> Pascal.
On the wiki pages some of my remarks got lost (or I didn't write them
down) but when I first looked at the <> notation style it looks very
unpascalish for me. I like more to add a new keyword for it, like the
samples wiht generic or template)
BTW,
what woud be the problem with
type
TMySpecificClass = TGenericClass(TObject, Integer);
var
MSC: TMySpecificClass;
begin
MSC := TMySpecificClass.Create
Marc
More information about the fpc-devel
mailing list