Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Implicit Cast und Operatoren

  Alt 27. Mär 2015, 20:18
Delphi-Version: XE7
Hallo zusammen,

ich habe einen Record, bei welchem ich einen class operator Implicit(A: TMyRecord): Integer implementiert habe. Nachdem IntVariable := MyRecord nun auch wie erwartet funktioniert hat, probierte ich es mit IntVariable := MyRecord * 4 . Von C++ her kenne ich es so, dass der Operator Multiply als nicht implementiert erkannt wird und dann aber auf den impliziten Cast zurückgefallen wird.

Gibt es eine Möglichkeit dieses Verhalten auch in Delphi zu aktivieren?

Hintergrund ist, dass ich eine generische Wrapper Klasse für diverse Datentypen (Integer, Boolean, Floats) geschrieben habe. Die Momentane Implementierung besteht allerdings trotz identischem Basiscode aus 3 verschiedenen Records. Integer muss class operator Add, Subtract, Multiply, etc unterstützen, Boolean dahingegen braucht LogicalNot, LogicalAnd, etc. und die Floats noch Sachen wie Trunc oder Round.

Würde der implizite Cast funktionieren, wie ich mir das vorstelle, bräuchte ich keinen einzigen class Operator implementieren und käme mit nur einem Record aus.

Viele Grüße
Zacherl
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat