On Fri, 31 May 2019, Ryan Joseph wrote:
On May 30, 2019, at 4:18 PM, Ryan Joseph <r...@thealchemistguild.com> wrote:
I didn’t realize generic functions were in the trunk. I’m not sure I got this
implemented properly so it requires some code review but can we try to include
“implicitfunctionspecialization” mode switch in the next release along the with
actual feature? https://bugs.freepascal.org/view.php?id=35261
{ got blocked again, attempting to resend }
I didn’t realize generic functions were in the trunk. I’m not sure I got this
implemented properly so it requires some code review but can we try to include
“implicitfunctionspecialization” mode switch in the next release along the with
actual feature? https://bugs.freepascal.org/view.php?id=35261
Specifically, for some time now I wanted to make a “ClearMem" function that doesn’t require passing the type but the insanely verbose syntax of generic functions makes it even longer. Honestly the syntax is so intrusive in ObjFPC mode that I would avoid using it all together.
What we have now:
var
pt: TPoint;
begin
FillChar(pt, sizeof(TPoint), 0);
Specialization with generics:
specialize ClearMem<TPoint>(pt);
With implicit specialization:
ClearMem(pt); // :)
I don't think this syntax is a good idea.
What with overloads ?
Procedure MyProc<T>(a:T);
Procedure MyProc(a : TObject);
How do I know which one will be called ?
Honestly, the idea of doing so many things "behind my back" is really not
comforting.
Brevity goes always at the cost of understandability.
Have a look at Scala. You can express things really compactly.
But if you look at someone else's compact code (or your own code after 2 months)
you no longer understand what exactly is happening.
Pascal is meant to be readable and understandable.
Things like this diminish these qualities hugely.
Michael.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel