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

Reply via email to