diff --git a/src/util/BindMethod.hxx b/src/util/BindMethod.hxx index 4035d13f3..6667785d4 100644 --- a/src/util/BindMethod.hxx +++ b/src/util/BindMethod.hxx @@ -139,12 +139,11 @@ struct MethodWrapperWithSignature { * #BindMethodWrapperGenerator. * * @param T the containing class - * @param M the method pointer type * @param method the method pointer * @param R the return type * @param Args the method arguments */ -template +template struct BindMethodWrapperGenerator2 { static R Invoke(void *_instance, Args... args) noexcept(NoExcept) { auto &t = *(T *)_instance; @@ -156,17 +155,16 @@ struct BindMethodWrapperGenerator2 { * Generate a wrapper function. * * @param T the containing class - * @param M the method pointer type * @param method the method pointer * @param S the plain function signature type */ -template +template struct BindMethodWrapperGenerator; template -struct BindMethodWrapperGenerator - : BindMethodWrapperGenerator2 { + auto method, typename R, typename... Args> +struct BindMethodWrapperGenerator + : BindMethodWrapperGenerator2 { }; template::function_pointer MakeBindMethodWrapper() noexcept { - return BindMethodWrapperGenerator::method_pointer, method, S>::Invoke; + return BindMethodWrapperGenerator::Invoke; } /**