Mercurial > projects > ldc
view lphobos/std/c/stdarg.d @ 23:77e3d1ddae3f trunk
[svn r27] * Fixed bug in aggregate field lookup.
* Fixed structs with no fields.
* Added support for NegExp as in -x.
author | lindquist |
---|---|
date | Thu, 04 Oct 2007 09:24:15 +0200 |
parents | c53b6e3fe49a |
children | 0ccfae271c45 |
line wrap: on
line source
/** * C's <stdarg.h> * Authors: Hauke Duden and Walter Bright, Digital Mars, www.digitalmars.com * License: Public Domain * Macros: * WIKI=Phobos/StdCStdarg */ /* This is for use with extern(C) variable argument lists. */ module std.c.stdarg; alias void* va_list; template va_start(T) { void va_start(out va_list ap, inout T parmn) { ap = cast(va_list)(cast(void*)&parmn + ((T.sizeof + int.sizeof - 1) & ~(int.sizeof - 1))); } } template va_arg(T) { T va_arg(inout va_list ap) { T arg = *cast(T*)ap; ap = cast(va_list)(cast(void*)ap + ((T.sizeof + int.sizeof - 1) & ~(int.sizeof - 1))); return arg; } } void va_end(va_list ap) { } void va_copy(out va_list dest, va_list src) { dest = src; }