tgeneric2.pp 427 B

1234567891011121314151617181920212223242526272829
  1. { %fail }
  2. {$mode objfpc}
  3. type
  4. generic TList<_T>=class(TObject)
  5. data : _T;
  6. procedure Add(item: _T);
  7. end;
  8. procedure TList.Add(item: _T);
  9. var
  10. i : integer;
  11. begin
  12. { The next line should fail for TList(string) }
  13. i:=item;
  14. data:=item;
  15. end;
  16. type
  17. TMyStringList = specialize TList<string>;
  18. var
  19. slist : TMyStringList;
  20. begin
  21. slist := TMyStringList.Create;
  22. slist.Add('Test');
  23. writeln(slist.data);
  24. end.