Mercurial > projects > ldc
view lphobos/std/stdio.d @ 104:4d1e9eb001e0 trunk
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
author | lindquist |
---|---|
date | Mon, 19 Nov 2007 02:58:58 +0100 |
parents | 61615fa85940 |
children | 5825d48b27d1 |
line wrap: on
line source
module std.stdio; import std.traits; void _writef(T)(T t) { static if (is(T == char)) { printf("%c", t); } else static if (is(T : char[])) { printf("%.*s", t.length, t.ptr); } else static if (is(T : long)) { printf("%ld", t); } else static if (is(T : ulong)) { printf("%lu", t); } else static if (is(T : real)) { printf("%f", t); } else static if (is(T : Object)) { _writef(t.toString()); } else static if(isArray!(T)) { _writef('['); if (t.length) { _writef(t[0]); foreach(v; t[1..$]) { _writef(','); _writef(v); } } _writef(']'); } else static assert(0, "Cannot writef:"~T.tostring); } void writef(T...)(T t) { foreach(v;t) _writef(v); } void writefln(T...)(T t) { writef(t, '\n'); }