[fpc-devel] Suggestion: reference counted objects
pascaldragon at googlemail.com
Sun Sep 21 14:38:50 CEST 2014
On 21.09.2014 14:15, Chriss Kalogeropoulos wrote:
> Hi Sven,
> This design means that old classes need to be subclassed in order to
> enable this feature, correct?
> Would it be possible instead of declaring this on the class definition,
> to declare it on the actual variable? Something like
> var aArcObj: TFooObj; refcounted;
> Or similar.
> This would allow the same classes to be used both ways.
No. You would need to have a place where to store the reference count
and one of the objections some people have is the size increase of
TObject if it would get a RefCount field (which would be the only
solution with your approach). Also you'd need to take care that all
variables where you pass along your object instance are marked as
refcounted. This just complicates things too much (both for programmers
using this as well as for the compiler).
> Also how about a smart pointer record implementation with generics? Is
> it possible ?
What's missing is the possiblity to hook into the initialization (unlike
interfaces, strings and arrays class variables fields are not
initialized with Nil) and finalization (you need to adjust the reference
count) of records. And also it's currently not possible to overload the
assignment operator if both types have the same record type.
More information about the fpc-devel