On Wed, 18 Mar 2015 15:35:03 +0100 "Robert M. Münch via Digitalmars-d-learn" <digitalmars-d-learn@puremagic.com> wrote:
> Hi, can something like this (I borrowed the C pre-processor idea) be > done with variadic mixins? > > #define log(variadic-arg) sys-log("%s:%s" + variadic-arg[0], > __FILE__, __LINE__, variadic-arg[1..$]); > > I read that mixins can only be used for declarations, and this here > is a function call. So wondering, how something like this can be done. > You probably does not need mixins: module main; import core.vararg; void some_fun(char c, string file, int line, ...) { import std.stdio : writeln; writeln(c, file, line); } void log(string file = __FILE__, size_t line = __LINE__, T...) (T variadic_arg) { some_fun(variadic_arg[0], file, line, variadic_arg[1 .. $]); } void main(string[] args) { log('c', 'm', 10); }