auto, var, raii,scope, banana

kris foo at bar.com
Tue Jul 25 10:17:13 PDT 2006


Don has a good point: changing to "var" would cause conflict with 
existing variable-names.

Chad et. al. also have a good point about the conflict regarding static 
opCall() (via the lack of a "new" keyword). I suspect many people find 
the use of "new" to be indicative of allocation, and breaking this 
consistency may have a detrimental effect? Further, it was noted that a 
missing "new" can only be used at the instantiation site -- not at the 
class decl -- thus, D would be losing an existing feature.

I suspect you could count the current number of raii-class uses on a few 
hands, whereas the use of "auto" for implied-type is pretty darned 
popular -- and rightly so, since it's really very, very useful. Changing 
the raii style to use a different keyword, whilst retaining implied-type 
"auto" would be an almost imperceptible change?

Thus, it would appear to make sense to retain "auto" for implied-type, 
and introduce something *else* for automatic cleanup at end-of-scope 
(and also as a class attribute). how about reusing the "scope" keyword?

void main()
{
   auto i = 10;
   auto foo = new Foo;
   auto scope bar = new Bar;
   auto scope wumpus = new Wumpus;
}

class Foo {}

class Bar {}

scope class Wumpus {}









More information about the Digitalmars-d mailing list