inner member classes in final outer class

Bruno Medeiros brunodomedeiros+spam at com.gmail
Tue Sep 18 02:01:07 PDT 2007


Regan Heath wrote:
> Bruno Medeiros wrote:
>> Regan Heath wrote:
>>> Bruno Medeiros wrote:
>>>> Regan Heath wrote:
>>>>> Bruno Medeiros wrote:
>>>>>> Regan Heath wrote:
>>>>>>>
>>>>>>> Well, that's where you're confused (by my badly constructed post).
>>>>>>>
>>>>>>> I was describing the OP's problem case, the current D behaviour 
>>>>>>> (unless I'm mistaken) which is for every instance of the inner 
>>>>>>> class to have a context pointer.
>>>>>>>
>>>>>>> The example above using static was my suggested solution, of sorts.
>>>>>>>
>>>>>>> Regan
>>>>>>
>>>>>> Ok, I know you were talking first about current D behavior, but I 
>>>>>> was talking about your suggested solution. You do understand why 
>>>>>> that solution wouldn't work as you expected?
>>>>>
>>>>> Nope.
>>>>>
>>>>> Are you referring to your comment:
>>>>> "Removing the context pointer would imply having different, 
>>>>> incompatible versions of the Inner class, and since that alters 
>>>>> program semantics the compiler cannot do that"
>>>>>
>>>>> ?
>>>>>
>>>>> Regan
>>>>
>>>> No, I mean making the context pointer static.
>>>
>>> Please explain why it wont work (as I expect - assuming you're not 
>>> confused about what I expect too <g>)?
>>>
>>> Regan
>>
>> Damn it, I already did! :P
>> You said you wanted to "have only X outer references, instead of X*Y 
>> outer references", right? And like I said, if you (or the compiler) 
>> made the context pointer static (as in 'static' storage class in a var 
>> declaration), you would have only 1 outer reference (not X), since 
>> static would make that "variable" unique.
> 
> Doh!  Somehow I totally missed that, you're quite correct. :)
> 
> Regan

Finally! :)

-- 
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D



More information about the Digitalmars-d mailing list