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;