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