Suggestion: shortcut for 'new X'

BCS BCS at pathlink.com
Thu Aug 24 09:08:22 PDT 2006


Kristian wrote:
> On Thu, 24 Aug 2006 18:10:12 +0300, Oskar Linde  
> <oskar.lindeREM at OVEgmail.com> wrote:
> 
>> Kristian wrote:
>>
>>> How about this:
>>>      Obj obj1 = new Obj;
>>>     Obj obj2 = new Obj(10);
>>>  could be reduced to:
>>>      Obj obj1 = new;
>>>     Obj obj2 = new(10);
>>>  This way only one class name would be required per variable. (That 
>>> is,  one at maximum: "Obj obj1 = new, obj2 = new(10);" is also valid 
>>> of  course.) Redundance would be reduced.
>>
>>
>> You can already do:
>>
>> auto obj1 = new Obj;
>> auto obj2 = new Obj(10);
>>
>> which takes care of the redundant Obj.
> 
> 
> Yes, and it's nice.
> But you cannot always use auto.
> 
> Obj func() {
>     Obj ret = new;
> 
>     ret.doSomething();
>     ...
>     return(ret);
> }
> 
> That would be nice too. :)

IIRC this works:

Obj func() {
     auto ret = new Obj;

     ret.doSomething();
     ...
     return(ret);
}



More information about the Digitalmars-d mailing list