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