Operator overloading

Xan xancorreu at gmail.com
Fri Apr 20 08:14:53 PDT 2012


On Friday, 20 April 2012 at 14:18:37 UTC, Dmitry Olshansky wrote:
> On 20.04.2012 18:10, Xan wrote:
>> What fails if I want to define this:
>>
>> Algorisme!(T,V) opBinary(string op)(Algorisme!(T,U) alg) {
>
>  Algorisme!(T,V) opBinary(string op, T)(Algorisme!(T,U) alg) {
>
> You need to name what T is and that is *sometype*. Anyway I 
> suggest getting a decent book (TDPL).
>
>> if (op=="*") {
>
> static if is conceptually and technically better here.


Thanks, Dmitry, for your suggestions, but it does not work too:

$ gdmd-4.6 algorisme
algorisme.d:54: Error: 'alg' is not of arithmetic type, it is a 
algorisme.Algorisme!(int,int).Algorisme
algorisme.d:54: Error: 'alg2' is not of arithmetic type, it is a 
algorisme.Algorisme!(int,int).Algorisme


I update de gist: https://gist.github.com/2429005

By the other hand, is there any way to put the definition of 
operator * in the class (not out like I have now)?


Thanks,
Xan.


More information about the Digitalmars-d-learn mailing list