Suggestion: common & polish constructors (+ destructors)

Georg Wrede georg.wrede at nospam.org
Sat Nov 4 17:32:18 PST 2006


Lionello Lunesu wrote:
> 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.

Cool!



More information about the Digitalmars-d mailing list