Перегрузка операторов в Delphi

возможно ли (в Delphi) перегрузить операторы в классах. Некоторое время назад я читал, что это возможно только для записей, но я нашел информацию, которая для классов слишком похожа на код ниже:

type
   TMyClass = class
     class operator Implicit(a: Integer): TMyClass;
   end;


class operator TMyClass.Implicit(a: Integer): TMyClass;
begin
   // ...
end;

Это (изменен) адрес: http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/operatoroverloads_xml.html

но когда я пытаюсь использовать его (внутри Delphi XE), я получить:

процедура, функция, свойство или ожидаемый VAR (E2123)

Я хочу создать свой собственный простой класс для матричного манипулирования, и возможность использования перегрузочных опеараторов внутри класса - очень ожидаемая возможность.

С уважением, Артик!--2-->

1 ответов


перегрузка операторов для классов доступна в некоторых версиях компилятора. Он доступен для компиляторов .net и iOS. Для Windows и Mac не поддерживается.

компилятор iOS может поддерживать это, поскольку он управляет временем жизни экземпляров класса с помощью ARC. Если настольные компиляторы когда-либо переключаются на ARC, вы можете ожидать поддержки перегрузки оператора.

Марко написал об этом в блоге: http://blog.marcocantu.com/blog/class_operators_delphi.html