tw30831.pp 508 B

12345678910111213141516171819202122232425262728293031323334353637
  1. { %NORUN }
  2. program tw30831;
  3. {$mode objfpc}
  4. type
  5. generic TTest<T> = class
  6. public
  7. procedure Test1(const aTest: T);
  8. procedure Test2(const aTest: T);
  9. end;
  10. procedure TTest.Test1(const aTest: T);
  11. begin
  12. WriteLn('Test1 ', aTest);
  13. end;
  14. procedure TTest.Test2(const aTest: T);
  15. begin
  16. WriteLn('Test2 ', aTest);
  17. end;
  18. generic procedure Test<T>();
  19. begin
  20. with specialize TTest<T>.Create do begin
  21. Test1(1);
  22. Test2(9);
  23. Free;
  24. end;
  25. end;
  26. begin
  27. specialize Test<Integer>();
  28. ReadLn;
  29. end.