Remove complex and imaginary types?

Leandro Lucarella llucax at gmail.com
Tue Jan 8 04:57:31 PST 2008


Daniel919, el  8 de enero a las 12:22 me escribiste:
> What about a more general solution like
> -----------------------------
> import std.stdio, std.conv;
> 
> struct complex {
>     real re;
>     real im;
>     complex opAdd(real r) { return complex(re+r, im); }
>     complex opAdd_r(real r) { return complex(re+r, im); }
>     complex opAdd(complex c) { return complex(re+c.re, im+c.im); }
>     string toString() { return std.conv.toString(re) ~ "+" ~ std.conv.toString(im) ~ "i"; 
> }
> }
> 
> //complex opPostfix("i")(T)(T im) { return complex(0,im); }
> 
> void main() {
> //    complex c =      1+5i      +     2+3i       +     6i;
>     complex c = 1+complex(0,5) + 2+complex(0,3) + complex(0,6);
>     writefln( c );
> }
> -----------------------------
> 
> This would also allow
> 
> real opPostfix("L")(T)(T x) { return x; }
> 
> T opPostfix("k")(T)(T x) { return x * 1000; }
> meter opPostfix("m")(T)(T x) { return meter(x); }

+1

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
Sus discipulos se miraron sin entended hasta que uno preguntose:
Peperino, soy Daniel Q. de Olivos tengo 54 años y aún soy virgen. A lo
que Peperino respondiole: Si sos ganso, ganso ser. Y lo frotó, y lo
curó y lo sanó. A lo que todos dijeron: ­¡¡¡Peperino se la come,
Peperino se la come!!!
	-- Peperino Pómoro



More information about the Digitalmars-d mailing list