| 
					
				 | 
			
			
				@@ -177,7 +177,7 @@ public: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         T* move = to; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         T* stop = end(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // fill the hole by moving following objects as long as possible 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        while(remove != to && move != stop) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        while(move != stop) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             *remove = std::move(*move); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             remove++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             move++; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -286,17 +286,26 @@ void test() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        V v; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        v.push_back(A(20)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        v.push_back(A(21)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        v.push_back(A(22)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        v.erase(v.begin() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(v.size() != 2 || v[0].a != 20 || v[1].a != 22) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            printError(7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        std::vector<A> v1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        V v2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(int i = 0; i < 200; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v1.push_back(A(i)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v2.push_back(A(i)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        v.erase(v.begin(), v.end()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(v.size() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            printError(8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v1.erase(v1.begin()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v1.erase(v1.begin() + 4, v1.begin() + 8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v1.erase(v1.begin() + 30, v1.begin() + 56); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v2.erase(v2.begin()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v2.erase(v2.begin() + 4, v2.begin() + 8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v2.erase(v2.begin() + 30, v2.begin() + 56); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(static_cast<int>(v1.size()) != static_cast<int>(v2.size())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            printError(100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(unsigned int i = 0; i < v1.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(v1[i].a != v2[i].a) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    printError(200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if(A::instances != 0) { 
			 |