* from that.
*/
FunEncapsulation collect_args (Class *object);
+
+ /**
+ * Same as above, but take
+ * a reference instead of a
+ * pointer. This allows us
+ * to be a little
+ * convenient, as we can
+ * use @p{object} or
+ * @p{this}, without taking
+ * care that one is a
+ * reference and the other
+ * a pointer.
+ */
+ FunEncapsulation collect_args (Class &object);
private:
/**
* from that.
*/
FunEncapsulation collect_args (Class *object,
- Arg1 arg1);
-
+ Arg1 arg1);
+
+ /**
+ * Same as above, but take
+ * a reference instead of a
+ * pointer. This allows us
+ * to be a little
+ * convenient, as we can
+ * use @p{object} or
+ * @p{this}, without taking
+ * care that one is a
+ * reference and the other
+ * a pointer.
+ */
+ FunEncapsulation collect_args (Class &object,
+ Arg1 arg1);
+
private:
/**
* Space to temporarily store
FunEncapsulation collect_args (Class *object,
Arg1 arg1,
Arg2 arg2);
+
+ /**
+ * Same as above, but take
+ * a reference instead of a
+ * pointer. This allows us
+ * to be a little
+ * convenient, as we can
+ * use @p{object} or
+ * @p{this}, without taking
+ * care that one is a
+ * reference and the other
+ * a pointer.
+ */
+ FunEncapsulation collect_args (Class &object,
+ Arg1 arg1,
+ Arg2 arg2);
private:
/**
Arg2 arg2,
Arg3 arg3);
+ /**
+ * Same as above, but take
+ * a reference instead of a
+ * pointer. This allows us
+ * to be a little
+ * convenient, as we can
+ * use @p{object} or
+ * @p{this}, without taking
+ * care that one is a
+ * reference and the other
+ * a pointer.
+ */
+ FunEncapsulation collect_args (Class &object,
+ Arg1 arg1,
+ Arg2 arg2,
+ Arg3 arg3);
+
private:
/**
* Space to temporarily store
Arg3 arg3,
Arg4 arg4);
+ /**
+ * Same as above, but take
+ * a reference instead of a
+ * pointer. This allows us
+ * to be a little
+ * convenient, as we can
+ * use @p{object} or
+ * @p{this}, without taking
+ * care that one is a
+ * reference and the other
+ * a pointer.
+ */
+ FunEncapsulation collect_args (Class &object,
+ Arg1 arg1,
+ Arg2 arg2,
+ Arg3 arg3,
+ Arg4 arg4);
private:
/**
* Space to temporarily store
Arg4 arg4,
Arg5 arg5);
+ /**
+ * Same as above, but take
+ * a reference instead of a
+ * pointer. This allows us
+ * to be a little
+ * convenient, as we can
+ * use @p{object} or
+ * @p{this}, without taking
+ * care that one is a
+ * reference and the other
+ * a pointer.
+ */
+ FunEncapsulation collect_args (Class &object,
+ Arg1 arg1,
+ Arg2 arg2,
+ Arg3 arg3,
+ Arg4 arg4,
+ Arg5 arg5);
private:
/**
* Space to temporarily store
Arg5 arg5,
Arg6 arg6);
+ /**
+ * Same as above, but take
+ * a reference instead of a
+ * pointer. This allows us
+ * to be a little
+ * convenient, as we can
+ * use @p{object} or
+ * @p{this}, without taking
+ * care that one is a
+ * reference and the other
+ * a pointer.
+ */
+ FunEncapsulation collect_args (Class &object,
+ Arg1 arg1,
+ Arg2 arg2,
+ Arg3 arg3,
+ Arg4 arg4,
+ Arg5 arg5,
+ Arg6 arg6);
private:
/**
* Space to temporarily store
+ template <class Class, typename RetType>
+ inline
+ FunEncapsulation
+ MemFunData0<Class,RetType>::ArgCollector::collect_args (Class &object)
+ {
+ return collect_args (&object);
+ };
+
+
+
/* ---------------------- MemFunData1 implementation ------------------------ */
template <class Class, typename Arg1, typename RetType>
+ template <class Class, typename Arg1, typename RetType>
+ inline
+ FunEncapsulation
+ MemFunData1<Class,Arg1,RetType>::ArgCollector::collect_args (Class &object,
+ Arg1 arg1)
+ {
+ return collect_args (&object, arg1);
+ };
+
/* ---------------------- MemFunData2 implementation ------------------------ */
template <class Class, typename Arg1, typename Arg2, typename RetType>
};
+ template <class Class, typename Arg1, typename Arg2, typename RetType>
+ inline
+ FunEncapsulation
+ MemFunData2<Class,Arg1,Arg2,RetType>::ArgCollector::collect_args (Class &object,
+ Arg1 arg1,
+ Arg2 arg2)
+ {
+ return collect_args (&object, arg1, arg2);
+ };
+
+
/* ---------------------- MemFunData3 implementation ------------------------ */
};
+
+ template <class Class, typename Arg1, typename Arg2, typename Arg3, typename RetType>
+ inline
+ FunEncapsulation
+ MemFunData3<Class,Arg1,Arg2,Arg3,RetType>::ArgCollector::collect_args (Class &object,
+ Arg1 arg1,
+ Arg2 arg2,
+ Arg3 arg3)
+ {
+ return collect_args (&object, arg1, arg2, arg3);
+ };
+
/* ---------------------- MemFunData4 implementation ------------------------ */
+ template <class Class, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename RetType>
+ inline
+ FunEncapsulation
+ MemFunData4<Class,Arg1,Arg2,Arg3,Arg4,RetType>::ArgCollector::collect_args (Class &object,
+ Arg1 arg1,
+ Arg2 arg2,
+ Arg3 arg3,
+ Arg4 arg4)
+ {
+ return collect_args (&object, arg1, arg2, arg3, arg4);
+ };
+
/* ---------------------- MemFunData5 implementation ------------------------ */
arg1, arg2, arg3, arg4, arg5);
};
+
+
+ template <class Class, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename RetType>
+ inline
+ FunEncapsulation
+ MemFunData5<Class,Arg1,Arg2,Arg3,Arg4,Arg5,RetType>::ArgCollector::collect_args (Class &object,
+ Arg1 arg1,
+ Arg2 arg2,
+ Arg3 arg3,
+ Arg4 arg4,
+ Arg5 arg5)
+ {
+ return collect_args (&object, arg1, arg2, arg3, arg4, arg5);
+ };
Arg4 arg4,
Arg5 arg5,
Arg6 arg6)
- {
- return new MemFunData6<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,void>(fun_ptr, object,
- arg1, arg2, arg3, arg4, arg5, arg6);
+ {
+ return new MemFunData6<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,void>(fun_ptr, object,
+ arg1, arg2, arg3, arg4, arg5, arg6);
};
-
+ template <class Class, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename RetType>
+ inline
+ FunEncapsulation
+ MemFunData6<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,RetType>::ArgCollector::collect_args (Class &object,
+ Arg1 arg1,
+ Arg2 arg2,
+ Arg3 arg3,
+ Arg4 arg4,
+ Arg5 arg5,
+ Arg6 arg6)
+ {
+ return collect_args (&object, arg1, arg2, arg3, arg4, arg5, arg6);
+ };
+
+
/* ---------------------------------------------------------------- */
inline