You didn't change anything there, just back to original code, now just enabled implicit cast again!
Please read my next replies, everything should be clear now. :)

Thanks!

On Sun, 28 Mar 2010 14:32:21 +0400, bearophile <[email protected]> wrote:

so:

Well, i am having hard time explaining, it is not a surprise that you
don't understand.

I think I have understood you this time. Writing skills are important for a programmer :-)
Is this what you are asking for? But it's not very good code:

import std.stdio: writeln;

struct Vector(T) {
     this(T m) { mm = m; }
     this(int m) { mm = cast(T)m; }
     Vector opBinary(string op:"*", T2)(T2 m) {
         return Vector(mm * m);
     }
     T mm;
}

void test(T)() {
     auto v = Vector!T(5);
     auto u = v * 3;
     writeln("u: ", u.mm);
}

void main() {
     test!ubyte();
     test!ushort();
     test!uint();
     test!ulong();
}

Bye,
bearophile


--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Reply via email to