Re: overloading evaluation (treating objects as functions)

2015-05-18 Thread Namespace via Digitalmars-d-learn
On Sunday, 17 May 2015 at 18:49:40 UTC, dan wrote: Is it possible to define a class F so that auto f=new F(); writeln("The value of f at 7 is ",f(7)); compiles and works as expected? So the idea would be to be able to use notation like f(7) instead of f.eval(7) or something along

overloading evaluation (treating objects as functions)

2015-05-18 Thread dan via Digitalmars-d-learn
Is it possible to define a class F so that auto f=new F(); writeln("The value of f at 7 is ",f(7)); compiles and works as expected? So the idea would be to be able to use notation like f(7) instead of f.eval(7) or something along those lines. My guess is no, it is impossible to d

Re: overloading evaluation (treating objects as functions)

2015-05-18 Thread Ali Çehreli via Digitalmars-d-learn
On 05/17/2015 11:49 AM, dan wrote: i can't find it on the internet There is the following short section as well: http://ddili.org/ders/d.en/operator_overloading.html#ix_operator_overloading.opCall Ali

Re: overloading evaluation (treating objects as functions)

2015-05-18 Thread Gary Willoughby via Digitalmars-d-learn
On Sunday, 17 May 2015 at 18:58:32 UTC, Namespace wrote: http://dlang.org/operatoroverloading.html#function-call Like this: module main; import std.stdio; class F { int opCall(int value) { return value * 2; } } void main(string[] args) { auto

Re: overloading evaluation (treating objects as functions)

2015-05-18 Thread dan via Digitalmars-d-learn
Awesome!! Thanks Gary and namespace (and obviously i gotta improve my google-fu). dan On Sunday, 17 May 2015 at 19:40:10 UTC, Gary Willoughby wrote: On Sunday, 17 May 2015 at 18:58:32 UTC, Namespace wrote: http://dlang.org/operatoroverloading.html#function-call Like this: module main; i