auto storage class - infer or RAII?

Walter Bright newshound at digitalmars.com
Sat Nov 11 10:48:00 PST 2006


The auto storage class currently is a little fuzzy in meaning, it can 
mean "infer the type" and/or "destruct at end of scope". The latter only 
has meaning for class objects, so let's look at the syntax. There are 4 
cases:

class Class { }

1) auto c = new Class();
2) auto Class c = new Class();
3) auto c = some_expression();
4) auto Class c = some_expression();

The ambiguity can be resolved by saying that if auto is used for type 
inference, i.e. cases (1) and (3), then it does not mean RAII. If it is 
not used for type inference, i.e. cases (2) and (4), then it does mean RAII.

In the future, I'd like the following to work:

5) auto c = Class();

which would mean type inference *and* RAII.



More information about the Digitalmars-d mailing list