FunData0<RetType>::FunData0 (FunPtr fun_ptr) :
FunDataBase (&FunData0<RetType>::thread_entry_point),
fun_ptr (fun_ptr)
- {};
+ {}
FunData0<RetType>::FunData0 (const FunData0 &fun_data) :
FunDataBase (fun_data),
fun_ptr (fun_data.fun_ptr)
- {};
+ {}
FunData0<RetType>::clone () const
{
return new FunData0 (*this);
- };
+ }
(*fun_ptr)();
return 0;
- };
+ }
template <typename RetType>
FunData0<RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
FunData0<RetType>::ArgCollector::collect_args ()
{
return new FunData0<void>(fun_ptr);
- };
+ }
FunDataBase (&FunData1<Arg1,RetType>::thread_entry_point),
fun_ptr (fun_ptr),
arg1 (arg1)
- {};
+ {}
FunDataBase (fun_data),
fun_ptr (fun_data.fun_ptr),
arg1 (fun_data.arg1)
- {};
+ {}
FunData1<Arg1,RetType>::clone () const
{
return new FunData1 (*this);
- };
+ }
(*fun_ptr)(arg1);
return 0;
- };
+ }
template <typename Arg1, typename RetType>
FunData1<Arg1,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
template <typename Arg1, typename RetType>
FunData1<Arg1,RetType>::ArgCollector::collect_args (Arg1 arg1)
{
return new FunData1<Arg1,void>(fun_ptr, arg1);
- };
+ }
fun_ptr (fun_ptr),
arg1 (arg1),
arg2 (arg2)
- {};
+ {}
fun_ptr (fun_data.fun_ptr),
arg1 (fun_data.arg1),
arg2 (fun_data.arg2)
- {};
+ {}
FunData2<Arg1,Arg2,RetType>::clone () const
{
return new FunData2 (*this);
- };
+ }
(*fun_ptr)(arg1, arg2);
return 0;
- };
+ }
template <typename Arg1, typename Arg2, typename RetType>
FunData2<Arg1,Arg2,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
Arg2 arg2)
{
return new FunData2<Arg1,Arg2,void>(fun_ptr, arg1, arg2);
- };
+ }
arg1 (arg1),
arg2 (arg2),
arg3 (arg3)
- {};
+ {}
arg1 (fun_data.arg1),
arg2 (fun_data.arg2),
arg3 (fun_data.arg3)
- {};
+ {}
FunData3<Arg1,Arg2,Arg3,RetType>::clone () const
{
return new FunData3 (*this);
- };
+ }
(*fun_ptr)(arg1, arg2, arg3);
return 0;
- };
+ }
template <typename Arg1, typename Arg2, typename Arg3, typename RetType>
FunData3<Arg1,Arg2,Arg3,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
Arg3 arg3)
{
return new FunData3<Arg1,Arg2,Arg3,void>(fun_ptr, arg1, arg2, arg3);
- };
+ }
arg2 (arg2),
arg3 (arg3),
arg4 (arg4)
- {};
+ {}
arg2 (fun_data.arg2),
arg3 (fun_data.arg3),
arg4 (fun_data.arg4)
- {};
+ {}
FunData4<Arg1,Arg2,Arg3,Arg4,RetType>::clone () const
{
return new FunData4 (*this);
- };
+ }
(*fun_ptr)(arg1, arg2, arg3, arg4);
return 0;
- };
+ }
template <typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename RetType>
FunData4<Arg1,Arg2,Arg3,Arg4,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
Arg4 arg4)
{
return new FunData4<Arg1,Arg2,Arg3,Arg4,void>(fun_ptr, arg1, arg2, arg3, arg4);
- };
+ }
arg3 (arg3),
arg4 (arg4),
arg5 (arg5)
- {};
+ {}
arg3 (fun_data.arg3),
arg4 (fun_data.arg4),
arg5 (fun_data.arg5)
- {};
+ {}
FunData5<Arg1,Arg2,Arg3,Arg4,Arg5,RetType>::clone () const
{
return new FunData5 (*this);
- };
+ }
(*fun_ptr)(arg1, arg2, arg3, arg4, arg5);
return 0;
- };
+ }
template <typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename RetType>
FunData5<Arg1,Arg2,Arg3,Arg4,Arg5,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
{
return new FunData5<Arg1,Arg2,Arg3,Arg4,Arg5,void>(fun_ptr, arg1, arg2,
arg3, arg4, arg5);
- };
+ }
arg4 (arg4),
arg5 (arg5),
arg6 (arg6)
- {};
+ {}
arg4 (fun_data.arg4),
arg5 (fun_data.arg5),
arg6 (fun_data.arg6)
- {};
+ {}
FunData6<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,RetType>::clone () const
{
return new FunData6 (*this);
- };
+ }
(*fun_ptr)(arg1, arg2, arg3, arg4, arg5, arg6);
return 0;
- };
+ }
template <typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename RetType>
FunData6<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
{
return new FunData6<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,void>(fun_ptr, arg1, arg2,
arg3, arg4, arg5, arg6);
- };
+ }
arg5 (arg5),
arg6 (arg6),
arg7 (arg7)
- {};
+ {}
arg5 (fun_data.arg5),
arg6 (fun_data.arg6),
arg7 (fun_data.arg7)
- {};
+ {}
FunData7<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,RetType>::clone () const
{
return new FunData7 (*this);
- };
+ }
(*fun_ptr)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
return 0;
- };
+ }
template <typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7, typename RetType>
FunData7<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
{
return new FunData7<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,void>(fun_ptr, arg1, arg2,
arg3, arg4, arg5, arg6, arg7);
- };
+ }
arg6 (arg6),
arg7 (arg7),
arg8 (arg8)
- {};
+ {}
arg6 (fun_data.arg6),
arg7 (fun_data.arg7),
arg8 (fun_data.arg8)
- {};
+ {}
FunData8<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,RetType>::clone () const
{
return new FunData8 (*this);
- };
+ }
(*fun_ptr)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
return 0;
- };
+ }
template <typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7, typename Arg8, typename RetType>
FunData8<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
return new FunData8<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,void>(fun_ptr, arg1, arg2,
arg3, arg4, arg5, arg6,
arg7, arg8);
- };
+ }
arg7 (arg7),
arg8 (arg8),
arg9 (arg9)
- {};
+ {}
arg7 (fun_data.arg7),
arg8 (fun_data.arg8),
arg9 (fun_data.arg9)
- {};
+ {}
FunData9<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,Arg9,RetType>::clone () const
{
return new FunData9 (*this);
- };
+ }
(*fun_ptr)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
return 0;
- };
+ }
template <typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7, typename Arg8, typename Arg9, typename RetType>
FunData9<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,Arg9,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
(fun_ptr, arg1, arg2,
arg3, arg4, arg5, arg6,
arg7, arg8, arg9);
- };
+ }
arg8 (arg8),
arg9 (arg9),
arg10 (arg10)
- {};
+ {}
arg8 (fun_data.arg8),
arg9 (fun_data.arg9),
arg10 (fun_data.arg10)
- {};
+ {}
FunData10<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,Arg9,Arg10,RetType>::clone () const
{
return new FunData10 (*this);
- };
+ }
(*fun_ptr)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
return 0;
- };
+ }
template <typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7, typename Arg8, typename Arg9, typename Arg10, typename RetType>
FunData10<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,Arg9,Arg10,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
(fun_ptr, arg1, arg2,
arg3, arg4, arg5, arg6,
arg7, arg8, arg9, arg10);
- };
+ }
FunDataBase (&MemFunData0<Class,RetType>::thread_entry_point),
fun_ptr (fun_ptr),
object (object)
- {};
+ {}
FunDataBase (fun_data),
fun_ptr (fun_data.fun_ptr),
object (fun_data.object)
- {};
+ {}
MemFunData0<Class,RetType>::clone () const
{
return new MemFunData0 (*this);
- };
+ }
(object->*fun_ptr)();
return 0;
- };
+ }
template <class Class, typename RetType>
MemFunData0<Class,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
MemFunData0<Class,RetType>::ArgCollector::collect_args (Class *object)
{
return new MemFunData0<Class,void>(fun_ptr, object);
- };
+ }
MemFunData0<Class,RetType>::ArgCollector::collect_args (Class &object)
{
return collect_args (&object);
- };
+ }
fun_ptr (fun_ptr),
object (object),
arg1 (arg1)
- {};
+ {}
fun_ptr (fun_data.fun_ptr),
object (fun_data.object),
arg1 (fun_data.arg1)
- {};
+ {}
MemFunData1<Class,Arg1,RetType>::clone () const
{
return new MemFunData1 (*this);
- };
+ }
(object->*fun_ptr)(arg1);
return 0;
- };
+ }
template <class Class, typename Arg1, typename RetType>
MemFunData1<Class,Arg1,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
template <class Class, typename Arg1, typename RetType>
Arg1 arg1)
{
return new MemFunData1<Class,Arg1,void>(fun_ptr, object, arg1);
- };
+ }
Arg1 arg1)
{
return collect_args (&object, arg1);
- };
+ }
/* ---------------------- MemFunData2 implementation ------------------------ */
object (object),
arg1 (arg1),
arg2 (arg2)
- {};
+ {}
object (fun_data.object),
arg1 (fun_data.arg1),
arg2 (fun_data.arg2)
- {};
+ {}
MemFunData2<Class,Arg1,Arg2,RetType>::clone () const
{
return new MemFunData2 (*this);
- };
+ }
(object->*fun_ptr)(arg1, arg2);
return 0;
- };
+ }
template <class Class, typename Arg1, typename Arg2, typename RetType>
MemFunData2<Class,Arg1,Arg2,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
Arg2 arg2)
{
return new MemFunData2<Class,Arg1,Arg2,void>(fun_ptr, object, arg1, arg2);
- };
+ }
template <class Class, typename Arg1, typename Arg2, typename RetType>
Arg2 arg2)
{
return collect_args (&object, arg1, arg2);
- };
+ }
arg1 (arg1),
arg2 (arg2),
arg3 (arg3)
- {};
+ {}
arg1 (fun_data.arg1),
arg2 (fun_data.arg2),
arg3 (fun_data.arg3)
- {};
+ {}
MemFunData3<Class,Arg1,Arg2,Arg3,RetType>::clone () const
{
return new MemFunData3 (*this);
- };
+ }
(object->*fun_ptr)(arg1, arg2, arg3);
return 0;
- };
+ }
template <class Class, typename Arg1, typename Arg2, typename Arg3, typename RetType>
MemFunData3<Class,Arg1,Arg2,Arg3,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
{
return new MemFunData3<Class,Arg1,Arg2,Arg3,void>(fun_ptr, object,
arg1, arg2, arg3);
- };
+ }
Arg3 arg3)
{
return collect_args (&object, arg1, arg2, arg3);
- };
+ }
arg2 (arg2),
arg3 (arg3),
arg4 (arg4)
- {};
+ {}
arg2 (fun_data.arg2),
arg3 (fun_data.arg3),
arg4 (fun_data.arg4)
- {};
+ {}
MemFunData4<Class,Arg1,Arg2,Arg3,Arg4,RetType>::clone () const
{
return new MemFunData4 (*this);
- };
+ }
(object->*fun_ptr)(arg1, arg2, arg3, arg4);
return 0;
- };
+ }
template <class Class, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename RetType>
MemFunData4<Class,Arg1,Arg2,Arg3,Arg4,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
{
return new MemFunData4<Class,Arg1,Arg2,Arg3,Arg4,void>(fun_ptr, object,
arg1, arg2, arg3, arg4);
- };
+ }
Arg4 arg4)
{
return collect_args (&object, arg1, arg2, arg3, arg4);
- };
+ }
/* ---------------------- MemFunData5 implementation ------------------------ */
arg3 (arg3),
arg4 (arg4),
arg5 (arg5)
- {};
+ {}
arg3 (fun_data.arg3),
arg4 (fun_data.arg4),
arg5 (fun_data.arg5)
- {};
+ {}
MemFunData5<Class,Arg1,Arg2,Arg3,Arg4,Arg5,RetType>::clone () const
{
return new MemFunData5 (*this);
- };
+ }
(object->*fun_ptr)(arg1, arg2, arg3, arg4, arg5);
return 0;
- };
+ }
template <class Class, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename RetType>
MemFunData5<Class,Arg1,Arg2,Arg3,Arg4,Arg5,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
{
return new MemFunData5<Class,Arg1,Arg2,Arg3,Arg4,Arg5,void>(fun_ptr, object,
arg1, arg2, arg3, arg4, arg5);
- };
+ }
Arg5 arg5)
{
return collect_args (&object, arg1, arg2, arg3, arg4, arg5);
- };
+ }
arg4 (arg4),
arg5 (arg5),
arg6 (arg6)
- {};
+ {}
arg4 (fun_data.arg4),
arg5 (fun_data.arg5),
arg6 (fun_data.arg6)
- {};
+ {}
MemFunData6<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,RetType>::clone () const
{
return new MemFunData6 (*this);
- };
+ }
(object->*fun_ptr)(arg1, arg2, arg3, arg4, arg5, arg6);
return 0;
- };
+ }
template <class Class, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename RetType>
MemFunData6<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
{
return new MemFunData6<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,void>(fun_ptr, object,
arg1, arg2, arg3, arg4, arg5, arg6);
- };
+ }
Arg6 arg6)
{
return collect_args (&object, arg1, arg2, arg3, arg4, arg5, arg6);
- };
+ }
arg5 (arg5),
arg6 (arg6),
arg7 (arg7)
- {};
+ {}
arg5 (fun_data.arg5),
arg6 (fun_data.arg6),
arg7 (fun_data.arg7)
- {};
+ {}
MemFunData7<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,RetType>::clone () const
{
return new MemFunData7 (*this);
- };
+ }
(object->*fun_ptr)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
return 0;
- };
+ }
template <class Class, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7, typename RetType>
MemFunData7<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,RetType>::ArgCollector::ArgCollector (FunPtr fun_ptr) :
fun_ptr (fun_ptr)
- {};
+ {}
{
return new MemFunData7<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,void>(fun_ptr, object,
arg1, arg2, arg3, arg4, arg5, arg6, arg7);
- };
+ }
Arg7 arg7)
{
return collect_args (&object, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
- };
+ }
/* ---------------------------------------------------------------- */
encapsulate (void (*fun_ptr)())
{
return fun_ptr;
- };
+ }
encapsulate (void (*fun_ptr)(Arg1))
{
return fun_ptr;
- };
+ }
encapsulate (void (*fun_ptr)(Arg1, Arg2))
{
return fun_ptr;
- };
+ }
encapsulate (void (*fun_ptr)(Arg1, Arg2, Arg3))
{
return fun_ptr;
- };
+ }
encapsulate (void (*fun_ptr)(Arg1, Arg2, Arg3, Arg4))
{
return fun_ptr;
- };
+ }
encapsulate (void (*fun_ptr)(Arg1, Arg2, Arg3, Arg4, Arg5))
{
return fun_ptr;
- };
+ }
encapsulate (void (*fun_ptr)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6))
{
return fun_ptr;
- };
+ }
encapsulate (void (*fun_ptr)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7))
{
return fun_ptr;
- };
+ }
encapsulate (void (*fun_ptr)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8))
{
return fun_ptr;
- };
+ }
Arg6, Arg7, Arg8, Arg9))
{
return fun_ptr;
- };
+ }
Arg6, Arg7, Arg8, Arg9, Arg10))
{
return fun_ptr;
- };
+ }
encapsulate (void (Class::*fun_ptr)())
{
return fun_ptr;
- };
+ }
encapsulate (void (Class::*fun_ptr)(Arg1))
{
return fun_ptr;
- };
+ }
encapsulate (void (Class::*fun_ptr)(Arg1, Arg2))
{
return fun_ptr;
- };
+ }
encapsulate (void (Class::*fun_ptr)(Arg1, Arg2, Arg3))
{
return fun_ptr;
- };
+ }
encapsulate (void (Class::*fun_ptr)(Arg1, Arg2, Arg3, Arg4))
{
return fun_ptr;
- };
+ }
encapsulate (void (Class::*fun_ptr)(Arg1, Arg2, Arg3, Arg4, Arg5))
{
return fun_ptr;
- };
+ }
encapsulate (void (Class::*fun_ptr)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6))
{
return fun_ptr;
- };
+ }
encapsulate (void (Class::*fun_ptr)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7))
{
return fun_ptr;
- };
+ }
}
else
return_values[i].second = end;
- };
+ }
return return_values;
- };
+ }