Index: trunk/src/lib/util/executor/executor_functional.h
===================================================================
--- trunk/src/lib/util/executor/executor_functional.h	(revision 8035)
+++ trunk/src/lib/util/executor/executor_functional.h	(revision 8048)
@@ -123,5 +123,5 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)();
@@ -163,8 +163,9 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-  {
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+  {
+    const MultiType* mt = (const MultiType*)values;
     return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0)? values[0] : this->defaultValue[0]) );
+             fromMulti<type0>((count > 0)? mt[0] : this->defaultValue[0]) );
   }
 
@@ -226,9 +227,10 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-  {
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+  {
+    const MultiType* mt = (const MultiType*)values;
     return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]) );
+             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
+             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]) );
   }
 
@@ -280,10 +282,11 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-  {
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+  {
+    const MultiType* mt = (const MultiType*)values;
     return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? values[2] : this->defaultValue[2]) );
+             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
+             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]),
+             fromMulti<type2>((count > 2) ? mt[2] : this->defaultValue[2]) );
   }
 
@@ -337,11 +340,12 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-  {
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+  {
+    const MultiType* mt = (const MultiType*)values;
     return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? values[2] : this->defaultValue[2]),
-             fromMulti<type3>((count > 3) ? values[3] : this->defaultValue[3]) );
+             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
+             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]),
+             fromMulti<type2>((count > 2) ? mt[2] : this->defaultValue[2]),
+             fromMulti<type3>((count > 3) ? mt[3] : this->defaultValue[3]) );
   }
 
@@ -396,12 +400,13 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-  {
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+  {
+    const MultiType* mt = (const MultiType*)values;
     return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? values[2] : this->defaultValue[2]),
-             fromMulti<type3>((count > 3) ? values[3] : this->defaultValue[3]),
-             fromMulti<type4>((count > 4) ? values[4] : this->defaultValue[4]) );
+             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
+             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]),
+             fromMulti<type2>((count > 2) ? mt[2] : this->defaultValue[2]),
+             fromMulti<type3>((count > 3) ? mt[3] : this->defaultValue[3]),
+             fromMulti<type4>((count > 4) ? mt[4] : this->defaultValue[4]) );
   }
 
@@ -421,6 +426,6 @@
  * @brief enables us to easily retrieve an Executor of Class T with modular Argument-count, (without thinking about args at all)
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR0(ret) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR0() \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(0)<T>(functionPointer); \
@@ -431,6 +436,6 @@
  * @param type0 for internal usage: the first Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR1(ret, type0) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR1(type0) \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(1)<T, type0##_TYPE>(functionPointer); \
@@ -442,6 +447,6 @@
  * @param type1 for internal usage: the second Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR2(ret, type0, type1) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR2(type0, type1) \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(2)<T, type0##_TYPE, type1##_TYPE>(functionPointer); \
@@ -454,6 +459,6 @@
  * @param type2 for internal usage: the third Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR3(ret, type0, type1, type2) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR3(type0, type1, type2) \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(3)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE>(functionPointer); \
@@ -467,6 +472,6 @@
  * @param type3 for internal usage: the fourth Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR4(ret, type0, type1, type2, type3) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR4(type0, type1, type2, type3) \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(4)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE>(functionPointer); \
@@ -481,6 +486,6 @@
  * @param type4 for internal usage: the fifth Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR5(ret, type0, type1, type2, type3, type4) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR5(type0, type1, type2, type3, type4) \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
     return new __EXECUTOR_FUNCTIONAL_NAME(5)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE>(functionPointer); \
