Reputation: 1323
Why is it that using generic types in a global procedure is not permitted. For example:
procedure Foo<T>(bar : T);
Compiler Error: E2530 Type parameters not allowed on global procedure or function
Yet it is acceptable as a class method
TFoo = class(TObject)
public
class procedure Foo<T>(bar : T);
end;
That's obviously my workaround, but I am interested in whether there an actual technical reason for the restriction.
Upvotes: 14
Views: 999
Reputation: 612844
There is no technical reason why procedures at global scope could not be generic.
If the designers wanted to implement this, then it could be done.
Upvotes: 11