diff --git a/src/corelib/kernel/qobjectdefs_impl.h b/src/corelib/kernel/qobjectdefs_impl.h index e8dd262672e..d45971fc874 100644 --- a/src/corelib/kernel/qobjectdefs_impl.h +++ b/src/corelib/kernel/qobjectdefs_impl.h @@ -332,21 +332,18 @@ namespace QtPrivate { typedef decltype(std::declval().operator()((std::declval())...)) Value; }; - template struct Functor - { - template - static void call(Function &f, void *, void **arg) { - FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); - } - }; - template - struct FunctorCallable : Functor + struct FunctorCallable { using ReturnType = decltype(std::declval()(std::declval()...)); using Function = ReturnType(*)(Args...); enum {ArgumentCount = sizeof...(Args)}; using Arguments = QtPrivate::List; + + template + static void call(Func &f, void *, void **arg) { + FunctorCall::Value, SignalArgs, R, Func>::call(f, arg); + } }; template