DIP 1004 Preliminary Review Round 1

Mike Wey via Digitalmars-d digitalmars-d at puremagic.com
Wed May 3 10:53:51 PDT 2017


On 05/03/2017 05:09 PM, Andrej Mitrovic wrote:
> On Wednesday, 3 May 2017 at 12:58:17 UTC, Daniel N wrote:
>> The trick is that your child class need to have defined at least 1 
>> constructor before the alias.
>>
>> This should work:
>> this() {}
>> alias __ctor = super.__ctor;
>>
>> This will give the error message you saw:
>> alias __ctor = super.__ctor;
>> this() {}
> 
> I see. It does look like an accidental feature (as in, that it could 
> break in the future).

You could switch to:

```
this(A...)(auto ref A a)
{
	import std.functional;
	super(forward!a);
}
```

but that doesn't work with all the parameter storage classes.
lazy is no longer lazy for example.

-- 
Mike Wey


More information about the Digitalmars-d mailing list