*/
static void * thread_entry_point (void *arg);
+
+//TODO:[WB] (compiler) with some compilers we get into trouble if the following class is not public, since we can't somehow declare the encapsulate function as friend. change this when compilers accept the friend declaration
+ public:
/**
* Helper class, used to collect
* the values of the parameters
* underlying class to a
* local type.
*/
- typedef FunData0<RetType>::FunPtr FunPtr;
+ typedef typename FunData0<RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef FunData1<Arg1,RetType>::FunPtr FunPtr;
+ typedef typename FunData1<Arg1,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef FunData2<Arg1,Arg2,RetType>::FunPtr FunPtr;
+ typedef typename FunData2<Arg1,Arg2,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef FunData3<Arg1,Arg2,Arg3,RetType>::FunPtr FunPtr;
+ typedef typename FunData3<Arg1,Arg2,Arg3,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef FunData4<Arg1,Arg2,Arg3,Arg4,RetType>::FunPtr FunPtr;
+ typedef typename FunData4<Arg1,Arg2,Arg3,Arg4,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef FunData5<Arg1,Arg2,Arg3,Arg4,Arg5,RetType>::FunPtr FunPtr;
+ typedef typename FunData5<Arg1,Arg2,Arg3,Arg4,Arg5,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef FunData6<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,RetType>::FunPtr FunPtr;
+ typedef typename FunData6<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef FunData7<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,RetType>::FunPtr FunPtr;
+ typedef typename FunData7<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef FunData8<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,RetType>::FunPtr FunPtr;
+ typedef typename FunData8<Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef MemFunData0<Class,RetType>::FunPtr FunPtr;
+ typedef typename MemFunData0<Class,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef MemFunData1<Class,Arg1,RetType>::FunPtr FunPtr;
+ typedef typename MemFunData1<Class,Arg1,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef MemFunData2<Class,Arg1,Arg2,RetType>::FunPtr FunPtr;
+ typedef typename MemFunData2<Class,Arg1,Arg2,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef MemFunData3<Class,Arg1,Arg2,Arg3,RetType>::FunPtr FunPtr;
+ typedef typename MemFunData3<Class,Arg1,Arg2,Arg3,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef MemFunData4<Class,Arg1,Arg2,Arg3,Arg4,RetType>::FunPtr FunPtr;
+ typedef typename MemFunData4<Class,Arg1,Arg2,Arg3,Arg4,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef MemFunData5<Class,Arg1,Arg2,Arg3,Arg4,Arg5,RetType>::FunPtr FunPtr;
+ typedef typename MemFunData5<Class,Arg1,Arg2,Arg3,Arg4,Arg5,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* underlying class to a
* local type.
*/
- typedef MemFunData6<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,RetType>::FunPtr FunPtr;
+ typedef typename MemFunData6<Class,Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,RetType>::FunPtr FunPtr;
/**
* Constructor. Take and store a
* @p{[begin[i],end[i])}.
*/
template <typename ForwardIterator>
- std::vector<std::pair<ForwardIterator,ForwardIterator> >
+ typename std::vector<typename std::pair<ForwardIterator,ForwardIterator> >
split_range (const ForwardIterator &begin,
const ForwardIterator &end,
const unsigned int n_intervals);
template <typename ForwardIterator>
- std::vector<std::pair<ForwardIterator,ForwardIterator> >
+ typename std::vector<typename std::pair<ForwardIterator,ForwardIterator> >
split_range (const ForwardIterator &begin, const ForwardIterator &end,
const unsigned int n_intervals)
{