X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;ds=sidebyside;f=include%2Fcallable.h;h=efff3e8d88b2d1d0fbe36668a6798e85acc47128;hb=be908ca25a1137587c2f49e457bd9e13e310991d;hp=544b37115fb2cbe4b756ae1bb10f439812c76c8b;hpb=9bc6a44ad1a07a6420ce4fd75dfea0796bcd0d46;p=command.git diff --git a/include/callable.h b/include/callable.h index 544b371..efff3e8 100644 --- a/include/callable.h +++ b/include/callable.h @@ -2,18 +2,19 @@ #define __COMMAND_CALLABLE_H #include +#include namespace command { /** * Callable behaviour class. */ - template + template class Callable { protected: /** * Function handling user Arguments */ - void (*func)(ArgumentType); + std::function func; public: /** @@ -21,7 +22,7 @@ namespace command { * * @param function Function that will be invoked */ - Callable(void (*function)(ArgumentType)) + Callable(std::function function) : func(function) { } @@ -33,7 +34,7 @@ namespace command { * * @param value Value passed to program argument */ - void call(ArgumentType value) { + void call(ParameterType value) { this->func(value); } }; @@ -48,7 +49,7 @@ namespace command { /** * Function handling user Arguments */ - void (*func)(void); + std::function func; public: /** @@ -56,9 +57,10 @@ namespace command { * * @param function Function that will be invoked */ - Callable(void (*function)(void)) + Callable(std::function function) : func(function) { } + virtual ~Callable() { } protected: