Mercurial > projects > dstress
diff run/l/lazy_04_C.d @ 1459:872b6f641b5d
[Issue 814] lazy argument + variadic arguments
Ville Mattila <ville.mattila@iki.fi>
2007-01-07
http://d.puremagic.com/issues/show_bug.cgi?id=814
author | thomask |
---|---|
date | Thu, 05 Apr 2007 10:26:56 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/l/lazy_04_C.d Thu Apr 05 10:26:56 2007 +0000 @@ -0,0 +1,35 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Ville Mattila <ville.mattila@iki.fi> +// @date@ 2007-01-07 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=814 +// @desc@ [Issue 814] lazy argument + variadic arguments + +module dstress.run.l.lazy_04_C; + +import std.stdarg; + +void foo(lazy char[] expression, ...){ + if("Dog" != expression){ + assert(0); + } + if (_arguments.length > 0) { + if ((_arguments[0]) == typeid(char[])) { + char[] s = va_arg!(char[])(_argptr); + if("Katze" != s){ + assert(0); + } + }else{ + assert(0); + } + }else{ + assert(0); + } +} + +int main(){ + foo("Dog", "Katze", "Fau"); + return 0; +}