понедельник, 23 марта 2015 г.

Link. If there were an automatic memory manager (i.e. a garbage collector) for the version of Delphi you currently use what would you be willing to pay for it?

https://plus.google.com/u/0/+KennethCochran/posts/gAjF4mQrkd8?cfem=1

It makes me laughing.

Я уже писал, что и ARC то я не люблю - Об "опасностях" ARC и прочих "автоматов" (набор ссылок)

А уж GC - тем более.

И кстати если кому-то нужен ARC для Win 32, то читаем вот:

Собственная реализация IUnknown и подсчёт ссылок. И примеси.
Containers 1. Implementation of reference counting.

И ПОМНИМ о том, что можно сделать:

type
 IMyClassPtr = interface;

 TMyClass = class
  ...
  class function CreatePtr: IMyClassPtr;
 end;//TMyClass

 IMyClassPtr = interface
  function AsHolded: TMyClass;
 end;//IMyClassPtr

Ну и Generic'и конечно.

(+) Records.
(+) Implicit.

Мысль понятна?

Вот как-то так можно сделать AutoPtr:

type
 TAutoPtr<T> = record
  class operator Implicit(aValue: <T>): TAutoPtr<T>;
  class operator Explicit(const aValue: TAutoPtr<T>): <T>;
 end;//TAutoPtr

Комментариев нет:

Отправить комментарий