blob: 157c4f63621dc3d95540fbe610d95d757fd7a7bf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
{$mode objfpc}
uses
typinfo;
type
generic TList<_T>=class(TObject)
data : _T;
procedure Add(item: _T);
end;
var
err : boolean;
procedure TList.Add(item: _T);
var
i : integer;
p : pointer;
begin
i:=item;
data := item;
p:=typeinfo(_T);
if p<>typeinfo(integer) then
begin
writeln('Typeinfo error');
err:=true;
end;
if sizeof(item)<>4 then
begin
writeln('Sizeof error');
err:=true;
end;
end;
type
TMyIntList = specialize TList<integer>;
var
ilist : TMyIntList;
someInt : integer;
begin
someInt:=10;
ilist := TMyIntList.Create;
ilist.Add(someInt);
writeln(ilist.data);
if ilist.data<>10 then
err:=true;
if err then
begin
writeln('ERROR!');
halt(1);
end;
end.
|