On 03/03/2016 04:50 PM, Nicholas Wilson wrote:
> //f is a File*
> void fwrite(int line = __LINE__)(...)
> {
>          f.write("/*",line,"*/ ");
>          f.write(_argptr); //prints e.g 7FFF5B055440
> }
> basically i want
> fwrite("1 ","2\t","3\n");
> to print
> /*7*/ 1 2    3
>
> do I have to iterate through _argptr

I think so. Also noting that C-style varargs can only work with fundamental types (Am I correct there? I am carrying this assumption from C++.), you may be happier with a template-parameter solution:

import std.stdio;

File f;

static this() {
    f = File("hello_world.txt", "w");
}


//f is a File*
void fwrite(int line = __LINE__, Args...)(Args args)
{
        f.write("/*",line,"*/ ");
        f.write(args);
}

void main() {
    fwrite("1 ","2\t","3\n");
}

Ali

Reply via email to