Removing entries from AAs
    useo6 
    unknown at unknown.com
       
    Fri Aug 19 05:01:47 PDT 2011
    
    
  
Hi,
I've create a little example of my problem:
module example;
class ExampleClass {
	public {
		int mi;
		this(int i) {
			mi = i;
		}
	}
}
int main(string[] args) {
	ExampleClass[hash_t] exp;
	ExampleClass cex = new ExampleClass(1);
	exp[cex.toHash()] = cex;
	cex = new ExampleClass(2);
	exp[cex.toHash()] = cex;
	cex = new ExampleClass(3);
	exp[cex.toHash()] = cex;
	foreach (ExampleClass c; exp) {
		if (c.mi == 2) {exp.remove(c.toHash()); }
	}
	return 0;
}
When I run this small example-app, I get an "Access Violation". When
I insert a break into my foreach-loop like:
	foreach (ExampleClass c; exp) {
		if (c.mi == 2) {exp.remove(c.toHash()); break; }
	}
it works, but this means, I leave the foreach-loop. What I'm doing
wrong by using the foreach-block?
Thanks for any help!
    
    
More information about the Digitalmars-d-learn
mailing list