[fpc-devel]Proposal for audo-destructors
Marc Weustink
marc at dommelstein.net
Sun Sep 12 13:02:52 CEST 2004
At 08:42 12-9-2004, netsurfer at au.ru wrote:
>Hello.
>
>Absence of automatic construction/destruction of
>classes is very painfull and it can significantly
>degrade the
>development process (i.e. smart pointers and RAII are
>impossible). It's one of the greatest flaws of Pascal
>relatevly to
>C (the second thing are Templates of cource). Are
>there any plans for serious language extensions in
>this way for "post
>2.0" releases of FPC ?
>
>P.S. The simpliest proposal for syntax for auto
>construction/destruction could be like (maybe with
>some restrictions
> on constructors/destructors):
>
> Procedure Something;
> Var T:tMyClass;Auto;
> Begin <- T auto created here
> ...
> If ... Then Exit; <- T auto destructed here
> ...
> End; <- T auto destructed here
>
> P.P.S. The "auto" modifier should affect only stack
>variables.
> There's no great need of this for global vars.
Again, what if you assign T to a global var or a class member ?
So in your example:
Procedure Something;
Var T:tMyClass;Auto;
Begin <- T auto created here
GlobalT := T; <- What would this do ?
...
If ... Then Exit; <- T auto destructed here
...
End; <- T auto destructed here
IMO if you want such behaviour, you can use interfaces.
Marc
More information about the fpc-devel
mailing list