On Tue, 25 Nov 2008 15:28:53 +0300, bearophile <[EMAIL PROTECTED]>
wrote:
Christopher Wright Wrote:
I don't know what this is doing. That code fragment won't compile, and
it isn't showing usage.
Sorry:
struct _add { T opCall(T.init + T.init)(T x) { return x+x; } }
_add add;
Did you mean:
struct _add { typeof(A.init+B.init) opCall(A, B)(A a, B b) { return a + b;
} }
_add add;
auto x = add(3, 0.1415926); ?
Now you can give it to a function, without the need of specializing it
for a type T first (you can't give the pointer to a template). (This may
also be faster, because there isn't a delegate to call).
(Haskell is statically typed and allows you do more complex things with
a clean enough syntax).
Yes, it is a nice trick.