pascalabcnet/CodeExamples/TypeclassExample.pas
Voloshin Bogdan 5bdc03978e Move examples
2018-04-12 06:52:32 +03:00

24 lines
394 B
ObjectPascal

type
SumTC[T] = typeclass
function sum(v1, v2: T): T;
end;
SumTC[integer] = instance
function sum(v1, v2: integer): integer;
begin
Result := v1 + v2;
end;
end;
function Sum3<T>(v1, v2, v3: T): T; where SumTC[T];
begin
Result := sum(v1, sum(v2, v3));
end;
begin
var v1, v2, v3, res: integer;
res := Sum3&<integer>(v1, v2, v3);
Write(res);
end.