From 18cc75987ae26a5b973994917ca23212a64783c4 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Wed, 16 Aug 2017 12:33:03 +0200
Subject: [PATCH] allow algorithm abstraction accept void callbacks

---
 .../src/abstraction/AlgorithmAbstraction.hpp        | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/alib2common/src/abstraction/AlgorithmAbstraction.hpp b/alib2common/src/abstraction/AlgorithmAbstraction.hpp
index a73c0b9a8b..16b5b2ca32 100644
--- a/alib2common/src/abstraction/AlgorithmAbstraction.hpp
+++ b/alib2common/src/abstraction/AlgorithmAbstraction.hpp
@@ -41,6 +41,19 @@ public:
 	}
 };
 
+template < class ... ParamTypes >
+class Callback < void, ParamTypes ... > {
+	std::function < void ( ParamTypes ... ) > m_callback;
+
+public:
+	Callback ( std::function < void ( ParamTypes ... ) > callback ) : m_callback ( callback ) {
+	}
+
+	void operator ( ) ( ParamTypes ... params ) {
+		m_callback ( std::forward < ParamTypes > ( params ) ... );
+	}
+};
+
 template < class ReturnType, class ... ParamTypes >
 class AlgorithmAbstractionBase : public ResultClassSelector < ReturnType >::OutputClass {
 protected:
-- 
GitLab