Am Wed, 25 Sep 2013 17:22:28 +0200
schrieb Benjamin Thaut <c...@benjamin-thaut.de>:

> Am 25.09.2013 00:39, schrieb Andrei Alexandrescu:
> >
> > We're banning that syntax of new.
> >
> > Andrei
> 
> I always love it when people just plain ignore all the arguments I
> made ...
> 

I think there's a misunderstanding here. new(...) already was a valid
syntax in D1, I think Andrei is referring to that:

http://www.digitalmars.com/d/1.0/class.html#allocators

And we really should get rid of that.

The nested class/context pointer argument is a pretty strong one. Of
course we could introduce builtins to deal with that but there's not
much benefit to that.

Having the compiler rewrite

"new(MallocAllocator) MyClass(a,b,c)"
to
"void[] __buf = MallocAllocator.it.allocate(MyClass.instancesize);"
"__construct!MyClass(__buf, a, b, c);" //Has to handle context ptr

seems like a good solution. It probably has to support both allocator
types(for allocators without state) and allocator instances.

Reply via email to