diff --git a/alib2common/src/abstraction/AlgorithmAbstraction.hpp b/alib2common/src/abstraction/AlgorithmAbstraction.hpp index a73c0b9a8b0b34e771f3ceb46f4d7b03d31ef326..16b5b2ca320a04ea0f699270bdd40dbaf2041353 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: