Virtual opBinary in interface

Steven Schveighoffer schveiguy at gmail.com
Sat Dec 21 07:02:07 UTC 2024


On Thursday, 19 December 2024 at 18:49:28 UTC, sfp wrote:
> Subject lines says it all, I think... The choice to make binary 
> operators implementable only via this `opBinary` template means 
> it's unclear how to get virtual operators on an interface.

>
> I am very new to D, and my goal is to learn how to solve this 
> problem using classic, runtime, dynamic polymorphism in D (so, 
> please don't suggest that I solve a different problem, suggest 
> that I use a particular library, a different technique, etc.). 
> Thanks in advance.

As said virtual functions cannot be templates. However you can 
use alias to essentially define what you want your operators to 
be called.

I wrote a blog post on how to use a single mixin to forward all 
operators to the D1 style overloads. You might find it useful or 
inspiring.

https://www.schveiguy.com/blog/2022/06/how-to-keep-using-d1-operator-overloads/

-Steve



More information about the Digitalmars-d-learn mailing list