File: tgeneric17.pp

package info (click to toggle)
fpc 2.6.4%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 178,760 kB
  • ctags: 83,946
  • sloc: pascal: 2,000,374; xml: 138,807; ansic: 9,617; asm: 7,843; yacc: 3,747; php: 3,271; sh: 2,626; makefile: 2,610; lex: 2,537; sql: 267; cpp: 145; sed: 132; perl: 126; csh: 34; tcl: 7
file content (26 lines) | stat: -rw-r--r-- 428 bytes parent folder | download | duplicates (12)
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
{$mode objfpc}{$H+}

type
  generic TGListItem<T> = class(TObject)
  public
    FNext: TGListItem;
    procedure Assign(Source: TGListItem);
  end;

procedure TGListItem.Assign(Source: TGListItem);
begin
  FNext := Source;
end;

type
  TIntListItem = specialize TGListItem<Integer>;

var
  A, B: TIntListItem;
begin
  A := TIntListItem.Create;
  B := TIntListItem.Create;
  A.Assign(B);
  if A.FNext <> B then
    halt(1);
end.