Auto syntax revisited

Ivan Senji ivan.senji_REMOVE_ at _THIS__gmail.com
Mon Feb 20 12:59:46 PST 2006


Fredrik Olsson wrote:
> After some discussion on #d I though why not put my thoughts into more 
> permanent writing.
> 
> Keyword auto is used for two reasons; implicit type and making sure the 
> object is destroyed when going out of scope. I suggest a new keyword for 
> the latter: local.
> 
> local auto foo = new Bar();
> 
> Why? First of auto is only used for the implicit type, so no confusion. 
>  The keyword local in itself describes pretty to the point what is 
> supposed to happen with the variable. And nothing is said about the 
> stack, so we are future proof if in the future we would like to also have:
> 
> local auto foo = Bar();
> 
> Where Bar(); is a function returning an Object, but we still want the 
> object to be destructed when going out of this scope. The implementation 
> is quite different as the Object would need to be on heap, but the 
> syntax is the same. So local would indicate what should be done (destroy 
> when out of scope), not how it should be done (allocate on stack or 
> whatever).
> 
> Even this could be possible, without syntax changes:
> {
>   local Foo bar;
>   // some code
>   Baz(bar); // Jupp Baz have a inout parameter returning an object.
> } // And bar is still destroyed if set to something here...
> 
> 
> regards
> // Fredrik Olsson

What ever the final syntax/semantics may be, a new keyword is a better 
solution.



More information about the Digitalmars-d mailing list