From 0b9a212cde2fdee93caddf3e916f28fb1a69ae4e Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Thu, 5 Nov 2015 21:11:17 +0100
Subject: [PATCH] deduplicate code

---
 alib2std/src/extensions/algorithm.hpp | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

diff --git a/alib2std/src/extensions/algorithm.hpp b/alib2std/src/extensions/algorithm.hpp
index b8c6d1e336..1685438156 100644
--- a/alib2std/src/extensions/algorithm.hpp
+++ b/alib2std/src/extensions/algorithm.hpp
@@ -10,20 +10,6 @@
 
 namespace std {
 
-template<class InputIt1, class InputIt2>
-bool excludes(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2) {
-	while (first2 != last2 && first1 != last1) {
-		if ( *first2 < *first1 ) {
-			++first2;
-		} else if( *first1 < *first2 ) {
-			++first1;
-		} else {
-			return false;
-		}
-	}
-	return true;
-}
-
 template<class InputIt1, class InputIt2, class Compare>
 bool excludes(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, Compare comp) {
 	while (first2 != last2 && first1 != last1) {
@@ -38,6 +24,11 @@ bool excludes(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2,
 	return true;
 }
 
+template<class InputIt1, class InputIt2>
+bool excludes(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2) {
+	return excludes(first1, last1, first2, last2, std::less<decltype(*first1)>());
+}
+
 } /* namespace std */
 
 #endif /* ALGORITHM_HPP_ */
-- 
GitLab