From ba3f3be63f4d290b6e9fbc9835efdee170b1ab7b Mon Sep 17 00:00:00 2001
From: Tomas Pecka <tomas.pecka@fit.cvut.cz>
Date: Mon, 7 Oct 2019 17:03:51 +0200
Subject: [PATCH] Allow printing and comparing of vector<ulong>

---
 alib2aux/src/compare/VectorCompare.cpp   | 15 ++++++++++++++
 alib2aux/src/compare/VectorCompare.h     | 25 ++++++++++++++++++++++++
 alib2common/src/PrimitiveRegistrator.cpp |  1 +
 3 files changed, 41 insertions(+)
 create mode 100644 alib2aux/src/compare/VectorCompare.cpp
 create mode 100644 alib2aux/src/compare/VectorCompare.h

diff --git a/alib2aux/src/compare/VectorCompare.cpp b/alib2aux/src/compare/VectorCompare.cpp
new file mode 100644
index 0000000000..0995e71fca
--- /dev/null
+++ b/alib2aux/src/compare/VectorCompare.cpp
@@ -0,0 +1,15 @@
+/*
+ * VectorCompare.cpp
+ *
+ *  Created on: Oct 4, 2019
+ *      Author: Tomas Pecka
+ */
+
+#include "VectorCompare.h"
+#include <registration/AlgoRegistration.hpp>
+
+namespace {
+
+auto VectorCompareULI = registration::AbstractRegister < compare::VectorCompare, bool, const ext::vector < unsigned long > &, const ext::vector < unsigned long > & > ( compare::VectorCompare::compare );
+
+} /* namespace */
diff --git a/alib2aux/src/compare/VectorCompare.h b/alib2aux/src/compare/VectorCompare.h
new file mode 100644
index 0000000000..e7224194aa
--- /dev/null
+++ b/alib2aux/src/compare/VectorCompare.h
@@ -0,0 +1,25 @@
+/*
+ * VectorCompare.h
+ *
+ *  Created on: Oct 4, 2019
+ *      Author: Tomas Pecka
+ */
+
+#ifndef VECTOR_COMPARE_H_
+#define VECTOR_COMPARE_H_
+
+#include <alib/vector>
+
+namespace compare {
+
+class VectorCompare {
+public:
+	template < class T >
+	static bool compare ( const ext::vector < T > & a, const ext::vector < T > & b ) {
+		return a == b;
+	}
+};
+
+} /* namespace compare */
+
+#endif /* VECTOR_COMPARE_H_ */
diff --git a/alib2common/src/PrimitiveRegistrator.cpp b/alib2common/src/PrimitiveRegistrator.cpp
index 69bc4e04d1..608430caa8 100644
--- a/alib2common/src/PrimitiveRegistrator.cpp
+++ b/alib2common/src/PrimitiveRegistrator.cpp
@@ -104,6 +104,7 @@ public:
 
 		abstraction::ValuePrinterRegistry::registerValuePrinter < ext::vector < object::Object > > ( );
 		abstraction::ValuePrinterRegistry::registerValuePrinter < ext::vector < unsigned > > ( );
+		abstraction::ValuePrinterRegistry::registerValuePrinter < ext::vector < unsigned long > > ( );
 		abstraction::ValuePrinterRegistry::registerValuePrinter < ext::vector < ext::pair < object::Object, object::Object > > > ( );
 
 		abstraction::ValuePrinterRegistry::registerValuePrinter < ext::pair < ext::vector < object::Object >, double > > ( );
-- 
GitLab