What is the proper way to handle pointers in variable arguments list?

Tyro[17] nospam at home.com
Sun Oct 28 13:36:12 PDT 2012


The following fails because the compiler assumes I am trying to 
dereference non-pointer variables. Can this be done?

void main()
{
     int i;
     int* pi;
     double d;
     double* pd;
     char c;
     char* pc;

     scan(i, pi, d, pd, c, pc);
}

void scan(A...)(ref A data)
{
     import std.traits;
     foreach (element; data) {
         if(isPointer!(typeof(element)) && isIntegral!(typeof(*element))) {
             *element = 10;
         }
     }
}

Thanks


More information about the Digitalmars-d-learn mailing list