On 3/7/10 19:11, Ellery Newcomer wrote:
Hello.

In D1, this code fails:

void foo(S)(ref S s){
foreach(ref k; s.tupleof){
k = 1;
}
}

struct K{
int g;
}

void main(){
K k;
foo(k);
assert(k.g == 1);
}


test.d(5): Error: no storage class for value k

(referring to 'k = 1;')

Is this an expected error, and is there a good way to get the semantics
to actually work?

It's a bug: http://d.puremagic.com/issues/show_bug.cgi?id=2411
You can use the following code as a workaround:

foreach (i, dummy ; s.tupleof)
        s.tupleof[i] = 1;

Reply via email to