mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-14 20:03:14 +01:00
Added initial support for CatExp aka 'a ~ b' Fixed global constant static arrays initialized with string literals Fixed casting any dynamic array to void* Fixed new expression with temporary storage Fixed alias declarations in function scope Fixed relational comparisons of pointers
26 lines
654 B
D
26 lines
654 B
D
module std.stdio;
|
|
|
|
import std.traits;
|
|
|
|
void _writef(T)(T t) {
|
|
static if(is(T: Object)) _writef(t.toString()); else
|
|
static if(is(T==char)) printf("%c", t); else
|
|
static if(is(T: char[])) printf("%.*s", t.length, t.ptr); else
|
|
static if(isArray!(T)) {
|
|
_writef('[');
|
|
if (t.length) _writef(t[0]);
|
|
for (int i=1; i<t.length; ++i) { _writef(','); _writef(t[i]); }
|
|
_writef(']');
|
|
} else
|
|
static if(is(T: int)) printf("%i", t); else
|
|
static if(is(T: real)) printf("%f", t); else
|
|
static assert(false, "Cannot print "~T.stringof);
|
|
}
|
|
|
|
void writef(T...)(T t) {
|
|
foreach (v; t) _writef(v);
|
|
}
|
|
void writefln(T...)(T t) {
|
|
writef(t, "\n");
|
|
}
|