ich habe hier und im englischen Forum, bzw. Suchmaschine / Freepascal Wiki versucht mich etwas vorab zu erlesen,
ob ich im aktuellen Lazarus 1.6.3 / FPC 3 Class Operator in Records nutzen und überladen kann.
Gedacht ist es wie folgt:
Projektdatei: {$mode objfpc}{$H+}
In der Unit: {$MODESWITCH ADVANCEDRECORDS}
Code: Alles auswählen
TMeinRecord = record
private
FValue: UInt64;
...
private
property Value: UInt64 read FValue;
public
// Operator overloading
class operator Implicit(const AValue: UInt64): TMeinRecord;
class operator Implicit(const AValue: TMeinRecord): UInt64;
...
end;
Code: Alles auswählen
(121,28) Error: It is not possible to overload this operator. Related overloadable operators (if any) are:
(121,66) Error: Impossible operator overload
Jetzt meine Frage, mache ich einfach was falsch wie ich es umsetze, oder ist es einfach grundsätzlich nicht möglich?
Ich weiß Operatoren können im Implementation teil ausserhalb der Klasse/Record direkt implementiert und dann später genutzt werden. Das hatte ich gesehen.
Aber irgendwo hatte ich gelesen, dass es so wie in Delphi innerhalb von Records in FPC ab Version 2.5.1 auch gehen müsste, allerdings waren die Posts schon älter
und die FPC war da nur im trunk und nicht als release erhältlich, also alles sehr vage und es gab auch keine Beispiele.
Danke und Gruß
Antonio