diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-09-08 23:29:50 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2018-09-08 23:29:50 +0200 |
commit | 7675203f977773fa8b86ff450b54ca536e760270 (patch) | |
tree | b0a217e48dcc8364a455d7227794bba3411f1f2d | |
parent | d3a6c1f97dac103273ebb53aefed0cce6688ddde (diff) |
build fix for pedantic compilers
-rw-r--r-- | src/server/game/Chat/ChatCommands/ChatCommand.h | 6 | ||||
-rw-r--r-- | src/server/game/Chat/ChatCommands/ChatCommandTags.h | 14 |
2 files changed, 12 insertions, 8 deletions
diff --git a/src/server/game/Chat/ChatCommands/ChatCommand.h b/src/server/game/Chat/ChatCommands/ChatCommand.h index de156e143b6..7f35f906776 100644 --- a/src/server/game/Chat/ChatCommands/ChatCommand.h +++ b/src/server/game/Chat/ChatCommands/ChatCommand.h @@ -45,8 +45,8 @@ struct CommandArgsConsumerSingle struct CommandArgsVariantConsumer { - template <typename V, typename T1, typename... Ts> - static std::enable_if_t<0 < sizeof...(Ts), char const*> TryConsumeTo(V& val, char const* args) + template <typename V, typename T1, typename T2, typename... Ts> + static char const* TryConsumeTo(V& val, char const* args) { T1 v; if (char const* next = CommandArgsConsumerSingle<T1>::TryConsumeTo(v, args)) @@ -55,7 +55,7 @@ struct CommandArgsVariantConsumer return next; } else - return TryConsumeTo<V, Ts...>(val, args); + return TryConsumeTo<V, T2, Ts...>(val, args); } template <typename V, typename T1> diff --git a/src/server/game/Chat/ChatCommands/ChatCommandTags.h b/src/server/game/Chat/ChatCommands/ChatCommandTags.h index bd21bc7d2d5..c28c4f21a8f 100644 --- a/src/server/game/Chat/ChatCommands/ChatCommandTags.h +++ b/src/server/game/Chat/ChatCommands/ChatCommandTags.h @@ -52,23 +52,27 @@ struct ExactSequence : public ContainerTag { using value_type = void; - template <size_t U = sizeof...(chars)> - static typename std::enable_if_t<U, char const*> TryConsume(char const* pos) + static constexpr bool isSingleChar = !sizeof...(chars); + + template <bool C = isSingleChar> + static typename std::enable_if_t<!C, char const*> _TryConsume(char const* pos) { if (*(pos++) == c1) - return ExactSequence<chars...>::TryConsume(pos); + return ExactSequence<chars...>::_TryConsume(pos); else return nullptr; } - template <size_t U = sizeof...(chars)> - static typename std::enable_if_t<!U, char const*> TryConsume(char const* pos) + template <bool C = isSingleChar> + static typename std::enable_if_t<C, char const*> _TryConsume(char const* pos) { if (*(pos++) != c1) return nullptr; // if more of string is left, tokenize should return 0 (otherwise we didn't reach end of token yet) return *pos && tokenize(pos) ? nullptr : pos; } + + char const* TryConsume(char const* pos) const { return ExactSequence::_TryConsume(pos); } }; /************************** VARIANT TAG LOGIC *********************************\ |