super(...) in mixin template

John Colvin john.loughran.colvin at gmail.com
Tue Mar 4 04:04:11 PST 2014


On Tuesday, 4 March 2014 at 12:01:46 UTC, John Colvin wrote:
> On Tuesday, 4 March 2014 at 10:37:02 UTC, Steve Teale wrote:
>> On Tuesday, 4 March 2014 at 07:23:29 UTC, Jacob Carlborg wrote:
>>>
>>> Perhaps you already figured this out but template mixins can 
>>> only mixin declarations, not expression or statements.
>>>
>>> --
>>> /Jacob Carlborg
>>
>> Damn! Yup, first sentence of the documentation. Wishful 
>> reading.
>>
>> Thanks.
>> Steve
>
> You can of course mixin a function (either nested inside the 
> constructor or as a member or even a free funtion) containing 
> whatever you want and then call that.
>
> That won't help you with calling super() though, you can only 
> call super from another constructor. You'd have to use a string 
> mixin as that truly can inject arbitrary code.

This opens a question:

Should functions nested in constructors be given all the same 
powers that a constructor has (calling super, initializing 
const/immutable data etc)?


More information about the Digitalmars-d mailing list