52#ifndef LASS_GUARDIAN_OF_INCLUSION_UTIL_THREAD_FUN_INL
53#define LASS_GUARDIAN_OF_INCLUSION_UTIL_THREAD_FUN_INL
68template <
typename Function>
73 return new ThreadFun(bind(function), kind);
80template <
typename ObjectPtr,
typename Method>
81ThreadFun* threadMemFun(
82 ObjectPtr
object, Method method,
85 return new ThreadFun(bind(method,
object), kind);
95template <
typename P1,
typename Function>
101 return new ThreadFun(bind(function, iP1), kind);
108template <
typename P1,
typename ObjectPtr,
typename Method>
109ThreadFun* threadMemFun(
110 ObjectPtr
object, Method method,
114 return new ThreadFun(bind(method,
object, iP1), kind);
124template <
typename P1,
typename P2,
typename Function>
127 const P1& iP1,
const P2& iP2,
130 return new ThreadFun(bind(function, iP1, iP2), kind);
137template <
typename P1,
typename P2,
typename ObjectPtr,
typename Method>
138ThreadFun* threadMemFun(
139 ObjectPtr
object, Method method,
140 const P1& iP1,
const P2& iP2,
143 return new ThreadFun(bind(method,
object, iP1, iP2), kind);
153template <
typename P1,
typename P2,
typename P3,
typename Function>
156 const P1& iP1,
const P2& iP2,
const P3& iP3,
159 return new ThreadFun(bind(function, iP1, iP2, iP3), kind);
166template <
typename P1,
typename P2,
typename P3,
typename ObjectPtr,
typename Method>
167ThreadFun* threadMemFun(
168 ObjectPtr
object, Method method,
169 const P1& iP1,
const P2& iP2,
const P3& iP3,
172 return new ThreadFun(bind(method,
object, iP1, iP2, iP3), kind);
182template <
typename P1,
typename P2,
typename P3,
typename P4,
typename Function>
185 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
188 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4), kind);
195template <
typename P1,
typename P2,
typename P3,
typename P4,
typename ObjectPtr,
typename Method>
196ThreadFun* threadMemFun(
197 ObjectPtr
object, Method method,
198 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
201 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4), kind);
211template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename Function>
214 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
217 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5), kind);
224template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename ObjectPtr,
typename Method>
225ThreadFun* threadMemFun(
226 ObjectPtr
object, Method method,
227 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
230 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5), kind);
240template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename Function>
243 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
246 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5, iP6), kind);
253template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename ObjectPtr,
typename Method>
254ThreadFun* threadMemFun(
255 ObjectPtr
object, Method method,
256 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
259 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5, iP6), kind);
269template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename Function>
272 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
275 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5, iP6, iP7), kind);
282template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename ObjectPtr,
typename Method>
283ThreadFun* threadMemFun(
284 ObjectPtr
object, Method method,
285 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
288 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5, iP6, iP7), kind);
298template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename Function>
301 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
304 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8), kind);
311template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename ObjectPtr,
typename Method>
312ThreadFun* threadMemFun(
313 ObjectPtr
object, Method method,
314 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
317 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8), kind);
327template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename Function>
330 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
333 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9), kind);
340template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename ObjectPtr,
typename Method>
341ThreadFun* threadMemFun(
342 ObjectPtr
object, Method method,
343 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
346 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9), kind);
356template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename Function>
359 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
362 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10), kind);
369template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename ObjectPtr,
typename Method>
370ThreadFun* threadMemFun(
371 ObjectPtr
object, Method method,
372 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
375 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10), kind);
385template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename Function>
388 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
const P11& iP11,
391 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11), kind);
398template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename ObjectPtr,
typename Method>
399ThreadFun* threadMemFun(
400 ObjectPtr
object, Method method,
401 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
const P11& iP11,
404 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11), kind);
414template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename Function>
417 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
const P11& iP11,
const P12& iP12,
420 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12), kind);
427template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename ObjectPtr,
typename Method>
428ThreadFun* threadMemFun(
429 ObjectPtr
object, Method method,
430 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
const P11& iP11,
const P12& iP12,
433 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12), kind);
443template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename Function>
446 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
const P11& iP11,
const P12& iP12,
const P13& iP13,
449 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12, iP13), kind);
456template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename ObjectPtr,
typename Method>
457ThreadFun* threadMemFun(
458 ObjectPtr
object, Method method,
459 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
const P11& iP11,
const P12& iP12,
const P13& iP13,
462 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12, iP13), kind);
472template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename Function>
475 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
const P11& iP11,
const P12& iP12,
const P13& iP13,
const P14& iP14,
478 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12, iP13, iP14), kind);
485template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename ObjectPtr,
typename Method>
486ThreadFun* threadMemFun(
487 ObjectPtr
object, Method method,
488 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
const P11& iP11,
const P12& iP12,
const P13& iP13,
const P14& iP14,
491 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12, iP13, iP14), kind);
501template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15,
typename Function>
504 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
const P11& iP11,
const P12& iP12,
const P13& iP13,
const P14& iP14,
const P15& iP15,
507 return new ThreadFun(bind(function, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12, iP13, iP14, iP15), kind);
514template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15,
typename ObjectPtr,
typename Method>
515ThreadFun* threadMemFun(
516 ObjectPtr
object, Method method,
517 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
const P9& iP9,
const P10& iP10,
const P11& iP11,
const P12& iP12,
const P13& iP13,
const P14& iP14,
const P15& iP15,
520 return new ThreadFun(bind(method,
object, iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12, iP13, iP14, iP15), kind);
general utility, debug facilities, ...
Library for Assembled Shared Sources.