Eliminate "new" for class object creation?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Oct 19 19:52:32 PDT 2009


Leandro Lucarella wrote:
> Jason House, el 19 de octubre a las 22:20 me escribiste:
>> Bill Baxter Wrote:
>>
>>> On Mon, Oct 19, 2009 at 4:00 PM, Rainer Deyke <rainerd at eldwood.com> wrote:
>>>> Andrei Alexandrescu wrote:
>>>>> I hereby suggest we get rid of new for class object creation. What do
>>>>> you guys think?
>>>> *applause*
>>>>
>>>> 'X(x)' and 'new X(x)' have distinct meanings in C++. ?In Java/C#/D, the
>>>> 'new' is just line noise.
>>> Well, I think "new Foo" is how you create a struct on the heap in D.
>>> So it's not exactly line noise.
>>> I don't mind getting rid of new, but there better be a good way to
>>> allocate structs on the heap.  And it better not require me to do an
>>> import just to be able to call the allocation function.
>>>
>>> I like the Foo.new syntax myself.
>>>
>>> --bb
>> Actually, new can also be used for creating classes on the stack... 
>> scope T t = new T();
> 
> Damn! This is getting confusing. It seems like allocation should be
> revised altogether :)

Scope will go (and this time I'm not kidding). It's very unsafe.

Andrei



More information about the Digitalmars-d mailing list