pascalabcnet/TestSuite/generics19.pas

24 lines
468 B
ObjectPascal
Raw Normal View History

2018-05-17 23:32:03 +03:00
type
IEq<T> = interface
function equal(x, y: T): boolean;
end;
Ord<T1, EqT> = abstract class
where EqT: IEq<T1>, constructor;
public
function equal(x, y: T1): boolean; virtual;
begin
var eqInst := new EqT;
Result := eqInst.equal(x, y);
end;
end;
function equal<T, EqT>(v1, v2: T): boolean; where EqT: IEq<T>, constructor;
begin
2018-05-18 18:30:24 +03:00
var eqtinstance := new EqT;
2018-05-17 23:32:03 +03:00
Result := eqtinstance.equal(v1, v2);
end;
begin
end.