Delphi coming ARM compiler (for iOS) will add a nice feature to the language. Operators overloading for classes, a feature that is currently only for records.

This means you can write a class like this:

  TNumber = class
    FValue: Integer;
    procedure SetValue(const Value: Integer);
    property Value: Integer read FValue write SetValue;
    class operator Add (a, b: TNumber): TNumber;
    class operator Implicit (n: TNumber): Integer;

And use it as follows:

a, b, c: TNumber;
c := a + b;
ShowMessage (IntToStr (c));

This new feature is a side effect of the new Automatic Reference Counting support that will be in the ARM compiler and I'll cover in details. In fact, the temporary objects created by expressions are managed in memory, with no need to free them manually. Sweet.