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