1 import core
.stdc
.limits
: c_long
, c_ulong
;
2 alias int c_int
; // Assumes 32-bit wide int.
3 alias uint c_uint
; // Assumes 32-bit wide int.
5 import core
.sys
.posix
.sys
.types
: time_t
, ssize_t
;
6 import std
.c
.stdarg
: va_list
;
7 import std
.c
.stdio
: FILE
;
12 // A wrapper that makes type <S> behave like a reference type.
17 alias __refpointer
this;
19 this(S
:S
)(ref S s
) { __refpointer
= &s
; }
20 this(SP
:S
*)(SP s
) { __refpointer
= s
; }
21 this(A
...)(A s
) { __refpointer
= new S(s
); }
23 void toString(FT
)(scope void delegate(const(char)[]) sink
, FT fmt
) {
25 formatValue(sink
, *__refpointer
, fmt
);