Mercurial > projects > ldc
view lphobos/std/stdio.d @ 94:61615fa85940 trunk
[svn r98] Added support for std.c.stdlib.alloca via pragma(LLVM_internal, "alloca").
Added support for array .sort and .reverse properties.
Fixed some bugs with pointer arithmetic.
Disabled some DMD AST optimizations that was messing things up, destroying valuable information.
Added a KDevelop project file, this is what I use for coding LLVMDC now :)
Other minor stuff.
author | lindquist |
---|---|
date | Mon, 12 Nov 2007 06:32:46 +0100 |
parents | 2c3cd3596187 |
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'); }