The Final(ize) Challenge

Christopher Wright dhasenan at gmail.com
Mon May 18 17:52:29 PDT 2009


Andrei Alexandrescu wrote:
> Christopher Wright wrote:
>> Andrei Alexandrescu wrote:
>>> I think you need to operate exclusively with string mixins in 
>>> Finalize, so __ident would be of marginal help there. Also, static 
>>> foreach is much more necessary.
>>
>> That is a huge problem.
>>
>> Let's say that the class you want to finalize, Target, has a method 
>> like this:
>> void foo(SomeClass){}
>>
>> Let's say that SomeClass is private and in the same module as Target.
>>
>> You *may* be able to do this with templates. Probably.
>>
>> You *can never* do this with a string mixin.
> 
> Of course you can. All you have to do is first check whether the call is 
> accessible from your instantiation point, BEFORE generating the string.
> 
> 
> Andrei

And a lot of interesting usages will have the Finalize template 
instantiated far from user code, but then passed back to user code. This 
means you can't do much at all with string mixins.

I faced that problem with dmocks and didn't find a good solution for it 
while still working on dmocks.



More information about the Digitalmars-d mailing list