[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