Suggestion: shortcut for 'new X' #2

Kristian kjkilpi at gmail.com
Tue Sep 5 10:51:10 PDT 2006


Ok, I think my previous suggestion for an optional shortcut was a bit too  
strange... For example:

Foo f = new Foo;
Bar b = new Bar(10);

<->

Foo f = new;
Bar b = new(10);


Now there has been a proposal of the following (I use 'local' keyword  
here):

Foo f1 = local Foo;  //stack/RAII
Foo f2 = new Foo;    //heap

I like the syntax also.


How about if you could *alternately* write:

local Foo f1;
new Foo f2;

This would take care of the redundant class name in the declarations.

(I just hate redundance! ;) Writing class names twice is frustrating;  
there is a pattern of "X ... X".)

Constructor parameters are put after variable names:

local Bar b(10);
new Bar b(10, true);


If this (or something similar) is not possible, a lot of people (including  
me) could end writing auto typed declarations. For example (auto here  
means auto type, not RAII):

auto f = new Foo;
auto b = new Bar(10);

That could be shortened to:

f = new Foo;
b = new Bar(10);

Which leads to my suggestion:

new Foo f;
new Bar b(10);



More information about the Digitalmars-d mailing list