Operator overloading
Dmitry Olshansky
dmitry.olsh at gmail.com
Fri Apr 20 12:51:33 PDT 2012
On 20.04.2012 23:33, Xan wrote:
>> Yes, you're wright. So in.
>>
>> But what fails?
>>
>> I reveice these errors and I have no idea what fails!
>>
>
> Sorry, the errors are:
>
> $ gdmd-4.6 algorisme.d
> algorisme.d:35: Error: 'this' is only defined in non-static member
> functions, not __funcliteral1
Easy - _this_ inside of
function (T t) { return this.funcio(alg.funcio(t)); }
Is not going to fly because there is no way to "store" _this_ in
function, use delegates (this is a context and it has to be "copied" ->
use delegates). But then you'd have to change to delegate everywhere.
(and there is toDelegate function in std.functional, that converts
function to delegate)
> algorisme.d:35: Error: function
> algorisme.Algorisme!(int,int).Algorisme.opBinary!("*",int).opBinary.__funcliteral1
> cannot access frame of function
> algorisme.Algorisme!(int,int).Algorisme.opBinary!("*",int).opBinary
> algorisme.d:35: Error: function
> algorisme.Algorisme!(int,int).Algorisme.opBinary!("*",int).opBinary.__funcliteral1
> cannot access frame of function
> algorisme.Algorisme!(int,int).Algorisme.opBinary!("*",int).opBinary
> algorisme.d:35: Error: function
> algorisme.Algorisme!(int,int).Algorisme.opBinary!("*",int).opBinary.__funcliteral1
> cannot access frame of function
> algorisme.Algorisme!(int,int).Algorisme.opBinary!("*",int).opBinary
> algorisme.d:35: Error: constructor
> algorisme.Algorisme!(int,int).Algorisme.this (string nom, uint versio,
> int function(int) funcio) is not callable using argument types
> (string,int,_error_ function(int t) nothrow @system)
> algorisme.d:35: Error: cannot implicitly convert expression
> (__funcliteral1) of type _error_ function(int t) nothrow @system to int
> function(int)
> algorisme.d:52: Error: template instance
> algorisme.Algorisme!(int,int).Algorisme.opBinary!("*",int) error
> instantiating
>
>
>
> I update the gist: https://gist.github.com/2429005
--
Dmitry Olshansky
More information about the Digitalmars-d-learn
mailing list