dlugolecki.net.pl
Dziennik
Polecane
Software
projects
/
command.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Possibility to pass class method reference
[command.git]
/
include
/
callable.h
diff --git
a/include/callable.h
b/include/callable.h
index 544b37115fb2cbe4b756ae1bb10f439812c76c8b..f4d9e084cabe385dfcee6cfbfb0adcf87016e551 100644
(file)
--- a/
include/callable.h
+++ b/
include/callable.h
@@
-2,18
+2,20
@@
#define __COMMAND_CALLABLE_H
#include <string>
#define __COMMAND_CALLABLE_H
#include <string>
+#include <functional>
namespace command {
/**
* Callable behaviour class.
*/
namespace command {
/**
* Callable behaviour class.
*/
- template<typename
Argument
Type>
+ template<typename
Parameter
Type>
class Callable {
protected:
/**
* Function handling user Arguments
*/
class Callable {
protected:
/**
* Function handling user Arguments
*/
- void (*func)(ArgumentType);
+// void (*func)(ParameterType);
+ std::function<void(ParameterType)> func;
public:
/**
public:
/**
@@
-21,7
+23,11
@@
namespace command {
*
* @param function Function that will be invoked
*/
*
* @param function Function that will be invoked
*/
- Callable(void (*function)(ArgumentType))
+// Callable(void (*function)(ParameterType))
+// : func(function) {
+// }
+
+ Callable(std::function<void(ParameterType)> function)
: func(function) {
}
: func(function) {
}
@@
-33,7
+39,7
@@
namespace command {
*
* @param value Value passed to program argument
*/
*
* @param value Value passed to program argument
*/
- void call(
Argument
Type value) {
+ void call(
Parameter
Type value) {
this->func(value);
}
};
this->func(value);
}
};
@@
-48,7
+54,8
@@
namespace command {
/**
* Function handling user Arguments
*/
/**
* Function handling user Arguments
*/
- void (*func)(void);
+// void (*func)(void);
+ std::function<void(void)> func;
public:
/**
public:
/**
@@
-56,9
+63,14
@@
namespace command {
*
* @param function Function that will be invoked
*/
*
* @param function Function that will be invoked
*/
- Callable(void (*function)(void))
+// Callable(void (*function)(void))
+// : func(function) {
+// }
+
+ Callable(std::function<void(void)> function)
: func(function) {
}
: func(function) {
}
+
virtual ~Callable() { }
protected:
virtual ~Callable() { }
protected: