As Delphi allows to forward declare both classes and interfaces, people often wonder about records.
The short answer: you can’t forward declare record types.
The long answer: you can’t directly, but you can indirectly either reference based (through pointers or callbacks with const parameters) or operator based (through operator overloading).
I think the reason forward declaration of classes and interfaces is possible because they both are reference types, so referring does not impose copying.
Anyway, the trick is this:
You can’t have forward declarations for record types. Define both Implicit operators in the second type
–jeroen
via: