[gelöst]: Records Class Operator und Überladen möglich?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

[gelöst]: Records Class Operator und Überladen möglich?

Beitragvon musicones » 10. Jan 2017, 10:15 [gelöst]: Records Class Operator und Überladen möglich?

Hallo,

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;
 


Compiler hängt sich in der Zeile class operator... mit folgender Meldung auf:
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
 


Das geht so weiter für weitere operatoren die ich einführen/überladen wollte.

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
Zuletzt geändert von musicones am 10. Jan 2017, 11:04, insgesamt 1-mal geändert.
musicones
 
Beiträge: 35
Registriert: 8. Sep 2009, 08:13
OS, Lazarus, FPC: Win 10 (L 1.6.2 FPC 3.0.0) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Michl » 10. Jan 2017, 10:29 Re: Records Class Operator und Überladen möglich?

Mit FPC 3.0.0 geht es nicht. Mit FPC 3.1.1 Trunk geht es hier (mode Delphi).
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2320
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon musicones » 10. Jan 2017, 11:05 Re: [gelöst]: Records Class Operator und Überladen möglich?

Danke für die Info.
Ok, ich habe gerade erst das Release eingerichtet.
Ich werde wohl zum nächsten Release warten, um das so umzusetzen.
musicones
 
Beiträge: 35
Registriert: 8. Sep 2009, 08:13
OS, Lazarus, FPC: Win 10 (L 1.6.2 FPC 3.0.0) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste

porpoises-institution
accuracy-worried