113#ifndef LASS_GUARDIAN_OF_INCLUSION_UTIL_THREAD_FUN_H
114#define LASS_GUARDIAN_OF_INCLUSION_UTIL_THREAD_FUN_H
129 ThreadFun(
const Callback0& fun, ThreadKind kind = threadDetached);
131 void doRun()
override;
137template <
typename Function>
142template <
typename ObjectPtr,
typename Method>
144 ObjectPtr
object, Method method,
150template <
typename P1,
typename Function>
156template <
typename P1,
typename ObjectPtr,
typename Method>
158 ObjectPtr
object, Method method,
164template <
typename P1,
typename P2,
typename Function>
167 const P1& iP1,
const P2& iP2,
170template <
typename P1,
typename P2,
typename ObjectPtr,
typename Method>
172 ObjectPtr
object, Method method,
173 const P1& iP1,
const P2& iP2,
178template <
typename P1,
typename P2,
typename P3,
typename Function>
181 const P1& iP1,
const P2& iP2,
const P3& iP3,
184template <
typename P1,
typename P2,
typename P3,
typename ObjectPtr,
typename Method>
186 ObjectPtr
object, Method method,
187 const P1& iP1,
const P2& iP2,
const P3& iP3,
192template <
typename P1,
typename P2,
typename P3,
typename P4,
typename Function>
195 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
198template <
typename P1,
typename P2,
typename P3,
typename P4,
typename ObjectPtr,
typename Method>
200 ObjectPtr
object, Method method,
201 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
206template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename Function>
209 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
212template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename ObjectPtr,
typename Method>
214 ObjectPtr
object, Method method,
215 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
220template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename Function>
223 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
226template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename ObjectPtr,
typename Method>
228 ObjectPtr
object, Method method,
229 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
234template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename Function>
237 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
240template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename ObjectPtr,
typename Method>
242 ObjectPtr
object, Method method,
243 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
248template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename Function>
251 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
254template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename ObjectPtr,
typename Method>
256 ObjectPtr
object, Method method,
257 const P1& iP1,
const P2& iP2,
const P3& iP3,
const P4& iP4,
const P5& iP5,
const P6& iP6,
const P7& iP7,
const P8& iP8,
262template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename Function>
265 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,
268template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename ObjectPtr,
typename Method>
270 ObjectPtr
object, Method method,
271 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,
276template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename Function>
279 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,
282template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename ObjectPtr,
typename Method>
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,
const P8& iP8,
const P9& iP9,
const P10& iP10,
290template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename Function>
293 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,
296template <
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>
298 ObjectPtr
object, Method method,
299 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,
304template <
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>
307 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,
310template <
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>
312 ObjectPtr
object, Method method,
313 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,
318template <
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>
321 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,
324template <
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>
326 ObjectPtr
object, Method method,
327 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,
332template <
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>
335 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,
338template <
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>
340 ObjectPtr
object, Method method,
341 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,
346template <
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>
349 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,
352template <
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>
354 ObjectPtr
object, Method method,
355 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,
library to run (member) functions in a thread
@ threadDetached
detached thread
#define LASS_DLL
DLL interface: import or export symbols?
Library for Assembled Shared Sources.