Suggestion: common & polish constructors (+ destructors)

Lionello Lunesu lio at lunesu.remove.com
Sat Nov 4 04:57:09 PST 2006


Georg Wrede wrote:
> Kristian Kilpi wrote:
>> On Fri, 03 Nov 2006 14:33:20 +0200, Bill Baxter <wbaxter at gmail.com> 
>> wrote:
>>
>>> Kristian Kilpi wrote:
>>>
>>>>  It would be nice if you could add code into constructors (and  
>>>> destructors)  with mixins. For example, you could initialize member  
>>>> objects/structures  added by a mixin, etc.
>>>> [snip]
>>>> And finally, there should also be common destructors (e.g.   
>>>> '~common_this()', 'finish_this()', 'destroy_this()') to be used 
>>>> with   mixins. This way each mixin could add code to the actual 
>>>> destructor.
>>>
>>>
>>> Actually what you suggest seems to already be the case for 
>>> destructors.    Don't know if it's in the spec, but I just noticed it 
>>> yesterday.
>>>
>>>
>>> template Death(int i)
>>> {
>>>      ~this() {
>>>          writefln("Death says: see you! ", i);
>>>      }
>>> }
>>> class DClass
>>> {
>>>      mixin Death!(1);
>>>      mixin Death!(2);
>>>      mixin Death!(3);
>>>
>>>      ~this() {
>>>          writefln("Class bye bye!");
>>>      }
>>>
>>>      mixin Death!(4);
>>>      mixin Death!(5);
>>>      mixin Death!(6);
>>> }
>>>
>>> The destructors get called in reverse order of appearance within DClass.
>>>
>>> --bb
>>
>>
>> Well now, that's nice. :)
>>
>> This feature is not yet documented, maybe Walter is experimenting 
>> things  for future releases... Hopefully we'll have something like it 
>> for the  ctors also.
> 
> I wonder if this is an accidental artifact of compiler internals?
> 
> I don't remember seeing any justifications for this behavior.

It's mentioned in the changelog.



More information about the Digitalmars-d mailing list