On 25/04/22 05:15, Hairy Pixels via fpc-pascal wrote:
generic function Add<T>(left, right: T): T;
And the programmer intends to call it like:
Add(1,1);
Why should the programmer need to tell the compiler it’s dealing with Integer
when it’s so obvious from the types being used?
Actually, it's dealing with SmallInt (or ShortInt). And if the
programmer does not know that, then it might be an issue...
Imagine the generic code (something more complex than "Add") would
somehow do something that differs for SmallInt and Integer. Like using
"SizeOf(T)".
Sure it can be solved by explicit specialization "Add<Integer>(1,1)".
But to solve it that way, the programmer needs to know... And he might
not...
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal