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