Mercurial > projects > ldc
view lphobos/std/stdio.d @ 100:5071469303d4 trunk
[svn r104] TONS OF FIXES.
Split up declaration, constant initializer gen and definition for globals, structs, classes and functions.
Improved ClassInfo support (not complete), not in vtable yet.
Fixed a bunch of forward reference problems.
Much more. Major commit! :)
author | lindquist |
---|---|
date | Fri, 16 Nov 2007 08:21:47 +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'); }