AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Generics in Freepascal

Ein Thema von pajofego · begonnen am 25. Nov 2007 · letzter Beitrag vom 26. Nov 2007
Antwort Antwort
pajofego

Registriert seit: 6. Okt 2004
103 Beiträge
 
#1

Generics in Freepascal

  Alt 25. Nov 2007, 17:15
Hallo zusammen,

ich hoffe hier ist der eine oder andere der sich neben Delphi auch mit fpc beschäftigt. Ich versuche gerade das neue feature Generic von fpc zu benutzen. Aus der Hilfe bin ich noch nicht so ganz schlau geworden. Im grunde genommen möchte ich wie in C++ eine Vektor Template Klasse definieren.

Meine Idee sieht wie folgt aus:

Delphi-Quellcode:
type
 Generic TVector<T> = class(TList)
  protected
    data : T;
  end;
var
 MyGeneric:<double>TVector;
Die Definition der generischen Klasse TVector wird soweit vom Compiler akzeptiert. Was ich bis jetzt nicht weiss ist, wie definiert man denn nun eine Instanz auf die Templateklasse? O.g. wird nicht akzeptiert. Hat einer von euch ein Beispielcode bzw. Erfahrung mit diesem neuen Feature in fpc? Ich konnte leider bis heute nicht den Artikel in Toolbox Magazin einsehen.

Danke,
Gruß
pajofego
  Mit Zitat antworten Zitat
Alloc

Registriert seit: 18. Apr 2005
Ort: Griesheim
167 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Generics in Freepascal

  Alt 25. Nov 2007, 17:30
Hi,

hast du es schonmal umgekehrt probiert? Also
MyGeneric: TVector<double>; ? So läuft das zumindest in Java =)

Grüße,
Chris
Christian Illy
ONI2.net, basicly every important link about Oni.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

Re: Generics in Freepascal

  Alt 25. Nov 2007, 17:47
ich nutze zwar kein FPC, aber Google meinte z.B. dieses dazu
Zitat:
In short, my second syntax proposal is:

- generic definition syntax (type section):
* {type_name} = generic {type_definition} of {generic_holder} ;

- generic implementation syntax (var section):
* {var_name} : specialize {generic_type} for {implemented_type} ;
* or if it's defined in type section:
* {type_name} = specialize {generic_type} for {implemented_type} ;
aus http://www.nabble.com/FPC's-generics-t3914040.html
$2B or not $2B
  Mit Zitat antworten Zitat
pajofego

Registriert seit: 6. Okt 2004
103 Beiträge
 
#4

Re: Generics in Freepascal

  Alt 25. Nov 2007, 22:43
So funktioniert's! Danke schon mal für die Tipps!

Ob das der prime path ist für die Verwendung von generics ist...bin ich mir nicht sicher! Vielleicht ist der eine oder andere hier der auch ein kleinwenig mit fpc programmiert.

Delphi-Quellcode:
type
  Generic TVector<T> = class(TList)
  protected
    data : T;
  end;
  TVectorDouble = specialize TVector<double>;
var
  MyGeneric: TVectorDouble;
Danke Gruß
pajofego
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Generics in Freepascal

  Alt 25. Nov 2007, 23:02
Zitat von pajofego:
Ob das der prime path ist für die Verwendung von generics ist...bin ich mir nicht sicher!
Ja, so werden Generics "spezialisiert" in FPC. Bei Delphi wird das dann wohl doch eher mit "var MyGeneric: TVector<double>;" von statten gehen. Zumindest lässt sich das aus Allen Bauers Blog andeutungsweise herauslesen.
  Mit Zitat antworten Zitat
pajofego

Registriert seit: 6. Okt 2004
103 Beiträge
 
#6

Re: Generics in Freepascal

  Alt 25. Nov 2007, 23:30
Ach,

das ist ja schön, dass Delphi da auch mal nachzieht. Die von dir genannte Syntax gefällt mir da auch besser. Finde ich schon erstaunlich was für eine Arbeit die Jung von fpc machen. Sehr viele Neuigkeiten haben die recht früh eingebracht...man denke da z.B. nur an Operator Overloading.

Wie sieht's eigentlich mit statischen Klassenvariabeln aus? Kann das Delphi Win32? Bei fpc habe ich da noch nichts finden können.

Gruß
pajofego
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: Generics in Freepascal

  Alt 26. Nov 2007, 12:42
Zitat von pajofego:
Wie sieht's eigentlich mit statischen Klassenvariabeln aus? Kann das Delphi Win32?
Die gibt es seit Delphi 2006.
Delphi-Quellcode:
TTest = class(TObject)
private
  class var MyVar: Integer;
public
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz