Adapt to the C++ SIC introduced by P0012: noexcept specialization
complements commit c5e687895dd2eba3106f697b6e92b84683402403 added missing noexcept (void)StoredMemberFunctionCall specialization to disambiguate template selection. Without these specializations, StoredFunctorPointerCall was a better match, which led to compilation failure Task-number: QTBUG-58142 Change-Id: Ibd41057d9a497f057a895d73277902e90300ed7a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
This commit is contained in:
parent
46543bb462
commit
8e83d61501
@ -606,6 +606,317 @@ QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1, Pa
|
|||||||
return (new typename SelectStoredConstMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool);
|
return (new typename SelectStoredConstMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510
|
||||||
|
template <typename T>
|
||||||
|
QFuture<T> run(T (*functionPointer)() noexcept)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall0<T, T (*)() noexcept>(functionPointer))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Param1, typename Arg1>
|
||||||
|
QFuture<T> run(T (*functionPointer)(Param1) noexcept, const Arg1 &arg1)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall1<T, T (*)(Param1) noexcept, Arg1>(functionPointer, arg1))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
QFuture<T> run(T (*functionPointer)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall2<T, T (*)(Param1, Param2) noexcept, Arg1, Arg2>(functionPointer, arg1, arg2))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
QFuture<T> run(T (*functionPointer)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall3<T, T (*)(Param1, Param2, Param3) noexcept, Arg1, Arg2, Arg3>(functionPointer, arg1, arg2, arg3))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
QFuture<T> run(T (*functionPointer)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall4<T, T (*)(Param1, Param2, Param3, Param4) noexcept, Arg1, Arg2, Arg3, Arg4>(functionPointer, arg1, arg2, arg3, arg4))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
QFuture<T> run(T (*functionPointer)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall5<T, T (*)(Param1, Param2, Param3, Param4, Param5) noexcept, Arg1, Arg2, Arg3, Arg4, Arg5>(functionPointer, arg1, arg2, arg3, arg4, arg5))->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T, typename Class>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)() noexcept)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall0<T, Class>::type(fn, object))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)(Param1) noexcept, const Arg1 &arg1)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T, typename Class>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)() const noexcept)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall0<T, Class>::type(fn, object))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)(Param1) const noexcept, const Arg1 &arg1)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2) const noexcept, const Arg1 &arg1, const Arg2 &arg2)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T, typename Class>
|
||||||
|
QFuture<T> run(Class *object, T (Class::*fn)() noexcept)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall0<T, Class>::type(fn, object))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
QFuture<T> run(Class *object, T (Class::*fn)(Param1) noexcept, const Arg1 &arg1)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
QFuture<T> run(Class *object, T (Class::*fn)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
QFuture<T> run(Class *object, T (Class::*fn)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
QFuture<T> run(Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
QFuture<T> run(Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T, typename Class>
|
||||||
|
QFuture<T> run(const Class *object, T (Class::*fn)() const noexcept)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall0<T, Class>::type(fn, object))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
QFuture<T> run(const Class *object, T (Class::*fn)(Param1) const noexcept, const Arg1 &arg1)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
QFuture<T> run(const Class *object, T (Class::*fn)(Param1, Param2) const noexcept, const Arg1 &arg1, const Arg2 &arg2)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
QFuture<T> run(const Class *object, T (Class::*fn)(Param1, Param2, Param3) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
QFuture<T> run(const Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start();
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
QFuture<T> run(const Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start();
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
QFuture<T> run(QThreadPool *pool, T (*functionPointer)() noexcept)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall0<T, T (*)() noexcept>(functionPointer))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Param1, typename Arg1>
|
||||||
|
QFuture<T> run(QThreadPool *pool, T (*functionPointer)(Param1) noexcept, const Arg1 &arg1)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall1<T, T (*)(Param1) noexcept, Arg1>(functionPointer, arg1))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
QFuture<T> run(QThreadPool *pool, T (*functionPointer)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall2<T, T (*)(Param1, Param2) noexcept, Arg1, Arg2>(functionPointer, arg1, arg2))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
QFuture<T> run(QThreadPool *pool, T (*functionPointer)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall3<T, T (*)(Param1, Param2, Param3) noexcept, Arg1, Arg2, Arg3>(functionPointer, arg1, arg2, arg3))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
QFuture<T> run(QThreadPool *pool, T (*functionPointer)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall4<T, T (*)(Param1, Param2, Param3, Param4) noexcept, Arg1, Arg2, Arg3, Arg4>(functionPointer, arg1, arg2, arg3, arg4))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
QFuture<T> run(QThreadPool *pool, T (*functionPointer)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
|
||||||
|
{
|
||||||
|
return (new StoredFunctorCall5<T, T (*)(Param1, Param2, Param3, Param4, Param5) noexcept, Arg1, Arg2, Arg3, Arg4, Arg5>(functionPointer, arg1, arg2, arg3, arg4, arg5))->start(pool);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T, typename Class>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)() noexcept)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall0<T, Class>::type(fn, object))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1) noexcept, const Arg1 &arg1)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T, typename Class>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)() const noexcept)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall0<T, Class>::type(fn, object))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1) const noexcept, const Arg1 &arg1)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2) const noexcept, const Arg1 &arg1, const Arg2 &arg2)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T, typename Class>
|
||||||
|
QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)() noexcept)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall0<T, Class>::type(fn, object))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)(Param1) noexcept, const Arg1 &arg1)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T, typename Class>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)() const noexcept)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall0<T, Class>::type(fn, object))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1) const noexcept, const Arg1 &arg1)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1, Param2) const noexcept, const Arg1 &arg1, const Arg2 &arg2)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1, Param2, Param3) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(pool);
|
||||||
|
}
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
|
||||||
|
{
|
||||||
|
return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
} //namespace QtConcurrent
|
} //namespace QtConcurrent
|
||||||
|
|
||||||
#endif // Q_QDOC
|
#endif // Q_QDOC
|
||||||
|
@ -255,6 +255,165 @@ struct SelectStoredConstMemberFunctionPointerCall0
|
|||||||
Type<StoredConstMemberFunctionPointerCall0 <T, Class>,
|
Type<StoredConstMemberFunctionPointerCall0 <T, Class>,
|
||||||
VoidStoredConstMemberFunctionPointerCall0<T, Class> >::type type;
|
VoidStoredConstMemberFunctionPointerCall0<T, Class> >::type type;
|
||||||
};
|
};
|
||||||
|
#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510
|
||||||
|
template <typename T, typename Class>
|
||||||
|
class StoredNoExceptMemberFunctionCall0 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionCall0(T (Class::*_fn)() noexcept, const Class &_object)
|
||||||
|
: fn(_fn), object(_object){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)() noexcept;
|
||||||
|
Class object;
|
||||||
|
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
class VoidStoredNoExceptMemberFunctionCall0 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionCall0(T (Class::*_fn)() noexcept, const Class &_object)
|
||||||
|
: fn(_fn), object(_object){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)() noexcept;
|
||||||
|
Class object;
|
||||||
|
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionCall0
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionCall0 <T, Class>,
|
||||||
|
VoidStoredNoExceptMemberFunctionCall0<T, Class> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
class StoredConstNoExceptMemberFunctionCall0 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionCall0(T (Class::*_fn)() const noexcept, const Class &_object)
|
||||||
|
: fn(_fn), object(_object){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)() const noexcept;
|
||||||
|
const Class object;
|
||||||
|
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionCall0 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall0(T (Class::*_fn)() const noexcept, const Class &_object)
|
||||||
|
: fn(_fn), object(_object){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)() const noexcept;
|
||||||
|
const Class object;
|
||||||
|
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionCall0
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionCall0 <T, Class>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall0<T, Class> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
class StoredNoExceptMemberFunctionPointerCall0 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionPointerCall0(T (Class::*_fn)() noexcept, Class *_object)
|
||||||
|
: fn(_fn), object(_object){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)() noexcept;
|
||||||
|
Class *object;
|
||||||
|
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
class VoidStoredNoExceptMemberFunctionPointerCall0 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall0(T (Class::*_fn)() noexcept, Class *_object)
|
||||||
|
: fn(_fn), object(_object){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)() noexcept;
|
||||||
|
Class *object;
|
||||||
|
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionPointerCall0
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionPointerCall0 <T, Class>,
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall0<T, Class> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
class StoredConstNoExceptMemberFunctionPointerCall0 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionPointerCall0(T (Class::*_fn)() const noexcept, Class const *_object)
|
||||||
|
: fn(_fn), object(_object){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)() const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionPointerCall0 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall0(T (Class::*_fn)() const noexcept, Class const *_object)
|
||||||
|
: fn(_fn), object(_object){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)() const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
|
||||||
|
};
|
||||||
|
template <typename T, typename Class>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionPointerCall0
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionPointerCall0 <T, Class>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall0<T, Class> >::type type;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
template <typename T, typename FunctionPointer, typename Arg1>
|
template <typename T, typename FunctionPointer, typename Arg1>
|
||||||
struct StoredFunctorCall1: public RunFunctionTask<T>
|
struct StoredFunctorCall1: public RunFunctionTask<T>
|
||||||
{
|
{
|
||||||
@ -458,6 +617,165 @@ struct SelectStoredConstMemberFunctionPointerCall1
|
|||||||
Type<StoredConstMemberFunctionPointerCall1 <T, Class, Param1, Arg1>,
|
Type<StoredConstMemberFunctionPointerCall1 <T, Class, Param1, Arg1>,
|
||||||
VoidStoredConstMemberFunctionPointerCall1<T, Class, Param1, Arg1> >::type type;
|
VoidStoredConstMemberFunctionPointerCall1<T, Class, Param1, Arg1> >::type type;
|
||||||
};
|
};
|
||||||
|
#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
class StoredNoExceptMemberFunctionCall1 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionCall1(T (Class::*_fn)(Param1) noexcept, const Class &_object, const Arg1 &_arg1)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)(arg1);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1) noexcept;
|
||||||
|
Class object;
|
||||||
|
Arg1 arg1;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
class VoidStoredNoExceptMemberFunctionCall1 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionCall1(T (Class::*_fn)(Param1) noexcept, const Class &_object, const Arg1 &_arg1)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)(arg1);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1) noexcept;
|
||||||
|
Class object;
|
||||||
|
Arg1 arg1;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionCall1
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionCall1 <T, Class, Param1, Arg1>,
|
||||||
|
VoidStoredNoExceptMemberFunctionCall1<T, Class, Param1, Arg1> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
class StoredConstNoExceptMemberFunctionCall1 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionCall1(T (Class::*_fn)(Param1) const noexcept, const Class &_object, const Arg1 &_arg1)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)(arg1);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1) const noexcept;
|
||||||
|
const Class object;
|
||||||
|
Arg1 arg1;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionCall1 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall1(T (Class::*_fn)(Param1) const noexcept, const Class &_object, const Arg1 &_arg1)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)(arg1);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1) const noexcept;
|
||||||
|
const Class object;
|
||||||
|
Arg1 arg1;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionCall1
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionCall1 <T, Class, Param1, Arg1>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall1<T, Class, Param1, Arg1> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
class StoredNoExceptMemberFunctionPointerCall1 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionPointerCall1(T (Class::*_fn)(Param1) noexcept, Class *_object, const Arg1 &_arg1)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)(arg1);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1) noexcept;
|
||||||
|
Class *object;
|
||||||
|
Arg1 arg1;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
class VoidStoredNoExceptMemberFunctionPointerCall1 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall1(T (Class::*_fn)(Param1) noexcept, Class *_object, const Arg1 &_arg1)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)(arg1);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1) noexcept;
|
||||||
|
Class *object;
|
||||||
|
Arg1 arg1;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionPointerCall1
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionPointerCall1 <T, Class, Param1, Arg1>,
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
class StoredConstNoExceptMemberFunctionPointerCall1 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionPointerCall1(T (Class::*_fn)(Param1) const noexcept, Class const *_object, const Arg1 &_arg1)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)(arg1);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1) const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
Arg1 arg1;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionPointerCall1 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall1(T (Class::*_fn)(Param1) const noexcept, Class const *_object, const Arg1 &_arg1)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)(arg1);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1) const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
Arg1 arg1;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionPointerCall1
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionPointerCall1 <T, Class, Param1, Arg1>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1> >::type type;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
template <typename T, typename FunctionPointer, typename Arg1, typename Arg2>
|
template <typename T, typename FunctionPointer, typename Arg1, typename Arg2>
|
||||||
struct StoredFunctorCall2: public RunFunctionTask<T>
|
struct StoredFunctorCall2: public RunFunctionTask<T>
|
||||||
{
|
{
|
||||||
@ -661,6 +979,165 @@ struct SelectStoredConstMemberFunctionPointerCall2
|
|||||||
Type<StoredConstMemberFunctionPointerCall2 <T, Class, Param1, Arg1, Param2, Arg2>,
|
Type<StoredConstMemberFunctionPointerCall2 <T, Class, Param1, Arg1, Param2, Arg2>,
|
||||||
VoidStoredConstMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type;
|
VoidStoredConstMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type;
|
||||||
};
|
};
|
||||||
|
#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
class StoredNoExceptMemberFunctionCall2 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)(arg1, arg2);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2) noexcept;
|
||||||
|
Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
class VoidStoredNoExceptMemberFunctionCall2 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)(arg1, arg2);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2) noexcept;
|
||||||
|
Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionCall2
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionCall2 <T, Class, Param1, Arg1, Param2, Arg2>,
|
||||||
|
VoidStoredNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
class StoredConstNoExceptMemberFunctionCall2 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)(arg1, arg2);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2) const noexcept;
|
||||||
|
const Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionCall2 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)(arg1, arg2);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2) const noexcept;
|
||||||
|
const Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionCall2
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionCall2 <T, Class, Param1, Arg1, Param2, Arg2>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
class StoredNoExceptMemberFunctionPointerCall2 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)(arg1, arg2);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2) noexcept;
|
||||||
|
Class *object;
|
||||||
|
Arg1 arg1; Arg2 arg2;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
class VoidStoredNoExceptMemberFunctionPointerCall2 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)(arg1, arg2);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2) noexcept;
|
||||||
|
Class *object;
|
||||||
|
Arg1 arg1; Arg2 arg2;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionPointerCall2
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionPointerCall2 <T, Class, Param1, Arg1, Param2, Arg2>,
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
class StoredConstNoExceptMemberFunctionPointerCall2 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)(arg1, arg2);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2) const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
Arg1 arg1; Arg2 arg2;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionPointerCall2 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)(arg1, arg2);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2) const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
Arg1 arg1; Arg2 arg2;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionPointerCall2
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionPointerCall2 <T, Class, Param1, Arg1, Param2, Arg2>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3>
|
template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3>
|
||||||
struct StoredFunctorCall3: public RunFunctionTask<T>
|
struct StoredFunctorCall3: public RunFunctionTask<T>
|
||||||
{
|
{
|
||||||
@ -864,6 +1341,165 @@ struct SelectStoredConstMemberFunctionPointerCall3
|
|||||||
Type<StoredConstMemberFunctionPointerCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
|
Type<StoredConstMemberFunctionPointerCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
|
||||||
VoidStoredConstMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type;
|
VoidStoredConstMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type;
|
||||||
};
|
};
|
||||||
|
#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
class StoredNoExceptMemberFunctionCall3 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)(arg1, arg2, arg3);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3) noexcept;
|
||||||
|
Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
class VoidStoredNoExceptMemberFunctionCall3 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)(arg1, arg2, arg3);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3) noexcept;
|
||||||
|
Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionCall3
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
|
||||||
|
VoidStoredNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
class StoredConstNoExceptMemberFunctionCall3 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)(arg1, arg2, arg3);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3) const noexcept;
|
||||||
|
const Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionCall3 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)(arg1, arg2, arg3);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3) const noexcept;
|
||||||
|
const Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionCall3
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
class StoredNoExceptMemberFunctionPointerCall3 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)(arg1, arg2, arg3);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3) noexcept;
|
||||||
|
Class *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
class VoidStoredNoExceptMemberFunctionPointerCall3 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)(arg1, arg2, arg3);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3) noexcept;
|
||||||
|
Class *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionPointerCall3
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionPointerCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
class StoredConstNoExceptMemberFunctionPointerCall3 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)(arg1, arg2, arg3);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3) const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionPointerCall3 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)(arg1, arg2, arg3);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3) const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionPointerCall3
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionPointerCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4>
|
template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4>
|
||||||
struct StoredFunctorCall4: public RunFunctionTask<T>
|
struct StoredFunctorCall4: public RunFunctionTask<T>
|
||||||
{
|
{
|
||||||
@ -1067,6 +1703,165 @@ struct SelectStoredConstMemberFunctionPointerCall4
|
|||||||
Type<StoredConstMemberFunctionPointerCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
|
Type<StoredConstMemberFunctionPointerCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
|
||||||
VoidStoredConstMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type;
|
VoidStoredConstMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type;
|
||||||
};
|
};
|
||||||
|
#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
class StoredNoExceptMemberFunctionCall4 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)(arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept;
|
||||||
|
Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
class VoidStoredNoExceptMemberFunctionCall4 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)(arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept;
|
||||||
|
Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionCall4
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
|
||||||
|
VoidStoredNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
class StoredConstNoExceptMemberFunctionCall4 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)(arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept;
|
||||||
|
const Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionCall4 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)(arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept;
|
||||||
|
const Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionCall4
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
class StoredNoExceptMemberFunctionPointerCall4 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)(arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept;
|
||||||
|
Class *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
class VoidStoredNoExceptMemberFunctionPointerCall4 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)(arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept;
|
||||||
|
Class *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionPointerCall4
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionPointerCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
class StoredConstNoExceptMemberFunctionPointerCall4 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)(arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionPointerCall4 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)(arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionPointerCall4
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionPointerCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5>
|
template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5>
|
||||||
struct StoredFunctorCall5: public RunFunctionTask<T>
|
struct StoredFunctorCall5: public RunFunctionTask<T>
|
||||||
{
|
{
|
||||||
@ -1270,6 +2065,164 @@ struct SelectStoredConstMemberFunctionPointerCall5
|
|||||||
Type<StoredConstMemberFunctionPointerCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
|
Type<StoredConstMemberFunctionPointerCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
|
||||||
VoidStoredConstMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type;
|
VoidStoredConstMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type;
|
||||||
};
|
};
|
||||||
|
#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
class StoredNoExceptMemberFunctionCall5 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)(arg1, arg2, arg3, arg4, arg5);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept;
|
||||||
|
Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
class VoidStoredNoExceptMemberFunctionCall5 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)(arg1, arg2, arg3, arg4, arg5);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept;
|
||||||
|
Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionCall5
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
|
||||||
|
VoidStoredNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
class StoredConstNoExceptMemberFunctionCall5 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object.*fn)(arg1, arg2, arg3, arg4, arg5);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept;
|
||||||
|
const Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionCall5 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object.*fn)(arg1, arg2, arg3, arg4, arg5);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept;
|
||||||
|
const Class object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionCall5
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
class StoredNoExceptMemberFunctionPointerCall5 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredNoExceptMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)(arg1, arg2, arg3, arg4, arg5);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept;
|
||||||
|
Class *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
class VoidStoredNoExceptMemberFunctionPointerCall5 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)(arg1, arg2, arg3, arg4, arg5);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept;
|
||||||
|
Class *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
struct SelectStoredNoExceptMemberFunctionPointerCall5
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredNoExceptMemberFunctionPointerCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
|
||||||
|
VoidStoredNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
class StoredConstNoExceptMemberFunctionPointerCall5 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StoredConstNoExceptMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
this->result = (object->*fn)(arg1, arg2, arg3, arg4, arg5);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
class VoidStoredConstNoExceptMemberFunctionPointerCall5 : public RunFunctionTask<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
|
||||||
|
: fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
|
||||||
|
|
||||||
|
void runFunctor() override
|
||||||
|
{
|
||||||
|
(object->*fn)(arg1, arg2, arg3, arg4, arg5);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept;
|
||||||
|
Class const *object;
|
||||||
|
Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
|
||||||
|
};
|
||||||
|
template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5>
|
||||||
|
struct SelectStoredConstNoExceptMemberFunctionPointerCall5
|
||||||
|
{
|
||||||
|
typedef typename SelectSpecialization<T>::template
|
||||||
|
Type<StoredConstNoExceptMemberFunctionPointerCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
|
||||||
|
VoidStoredConstNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
template <typename T, typename Functor>
|
template <typename T, typename Functor>
|
||||||
class StoredFunctorCall : public RunFunctionTask<T>
|
class StoredFunctorCall : public RunFunctionTask<T>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user