From 031692124cd02c1b38ded42cc4ed6ffa4f993bbd Mon Sep 17 00:00:00 2001
From: David Rosca <roscadav@fit.cvut.cz>
Date: Sun, 22 Mar 2015 15:43:05 +0100
Subject: [PATCH] std/compare.hpp: Fix compare for unordered_map

unordered_map is unordered (O.o) so it cannot be compared
by two simultaneous iterators
---
 alib2data/src/std/compare.hpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/alib2data/src/std/compare.hpp b/alib2data/src/std/compare.hpp
index 0f4e188f56..7a22279d58 100644
--- a/alib2data/src/std/compare.hpp
+++ b/alib2data/src/std/compare.hpp
@@ -122,9 +122,11 @@ struct compare<unordered_map<T, R>> {
 		if(first.size() < second.size()) return -1;
 		if(first.size() > second.size()) return 1;
 
-		compare<std::pair<T, R>> comp;
-		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); iterF++, iterS++) {
-			int res = comp(*iterF, *iterS);
+		compare<R> comp;
+		for(auto iter = first.begin(); iter != first.end(); iter++) {
+			auto search = second.find(iter->first);
+			if(search == second.end()) return -1;
+			int res = comp(iter->second, search->second);
 			if(res != 0) return res;
 		}
 		return 0;
-- 
GitLab