From 86cfb2375bbbb03fb1ecfbdee47ea6918a368646 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Tue, 27 Apr 2021 02:40:57 +0100 Subject: Use parameter pack expansion instead of recursive calls. --- include/clientprotocol.h | 21 +++++---------------- include/numeric.h | 20 +++++--------------- 2 files changed, 10 insertions(+), 31 deletions(-) diff --git a/include/clientprotocol.h b/include/clientprotocol.h index c5b880d4e..c02c54ef6 100644 --- a/include/clientprotocol.h +++ b/include/clientprotocol.h @@ -357,24 +357,13 @@ class ClientProtocol::Message : public ClientProtocol::MessageSource */ void PushParam(const std::string& str) { params.emplace_back(0, str); } - /** Add a non-string parameter to the parameter list. - * @param param Non-string to add, will be copied. + /** Converts the given arguments to a string and adds them to the parameter list. + * @param args One or more parameters to add to the parameter list. */ - template - void PushParam(T&& param) + template + void PushParam(const Args&... args) { - PushParam(ConvToStr(param)); - } - - /** Adds a variable number of parameters to the parameter list. - * @param arg1 The first argument to push. - * @param args A variable number of arguments to push. - */ - template - void PushParam(FirstArg&& arg1, FwdArgs&&... args) - { - PushParam(arg1); - PushParam(std::forward(args)...); + (PushParam(ConvToStr(args)), ...); } /** Add a parameter to the parameter list. diff --git a/include/numeric.h b/include/numeric.h index 79a569c22..9ce34b12b 100644 --- a/include/numeric.h +++ b/include/numeric.h @@ -50,23 +50,13 @@ class Numeric::Numeric { } - /** Add a parameter pack to the numeric. - * @param x1 The first element of the parameter pack. - * @param x2 The rest of the parameter pack. + /** Converts the given arguments to a string and adds them to the numeric. + * @param args One or more arguments to the numeric. */ - template - Numeric& push(const T1& x1, T2... x2) + template + Numeric& push(const Args&... args) { - return push(x1).push(std::forward(x2)...); - } - - /** Add a parameter to the numeric. The parameter will be converted to a string first with ConvToStr(). - * @param x The parameter to add to the numeric. - */ - template - Numeric& push(const T& x) - { - params.push_back(ConvToStr(x)); + (params.push_back(ConvToStr(args)), ...); return *this; } -- cgit v1.3.1-10-gc9f91