From eca097dbfb736d8b531d4a60b35a8ba78b441b70 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 2 Dec 2021 22:36:11 +0100 Subject: [PATCH] util/BindMethod: simplify more templates using "auto" template arguments --- src/util/BindMethod.hxx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) 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; } /**