>________________________________
>From: David Simcha <[email protected]>
>To: Discuss the phobos library for D <[email protected]>
>Sent: Friday, April 22, 2011 6:58 PM
>Subject: Re: [phobos] Time to get ready for the next release
>
>
> On 4/22/2011 5:05 PM, Steve Schveighoffer wrote: 
>> How do you automate 4182?  That is, how does the wrapper know that I want 
>> the result to be covariant in derived classes?
>>
>>
> Right, I agree with you that this is a bug and should be fixed.  I am not 
> sure, however, how it relates to the operator overloading issue.

OK, I looked over it again, and it's actually a bug that affects my workaround 
for the other bug.  Essentially, in order to work around the fact that I can't 
have templates in my interfaces, I aliased the virtual functions to opCat, 
etc.  But that did not pass on the covariance.

However, thinking about it, it would be nice if I could simply alias the 
operators to virtual functions.  Hm...  Would something like this make sense?

class C
{
   C opCatAssign(C other) {...}

   template opOpAssign(string s) if s == "~="
   {
       alias opCatAssign opOpAssign;
   }
}

This would be awesome, because then we have a way to get all our virtual 
functions without having to incur template bloat, or rely on inlining.  I can 
see how this would be useful for opDispatch.

It would also make for a super-easy mixin implementation.  In fact, you 
wouldn't need to deal with parameters at all.

But in this case, 4182 would need to be fixed ;)

I need to file another enhancement request...

-Steve

_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to