On 10/28/12 4:44 PM, Dmitry Olshansky wrote:
On 29-Oct-12 00:36, Tyro[17] wrote:
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
Well, first things first:
if ---> static if
Changing it to static allows compilation, however I get the following
runtime error:
"Segmentation fault: 11"
This happens whether I try to read from *element or modify it.