aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2018-09-08 23:29:50 +0200
committerTreeston <treeston.mmoc@gmail.com>2018-09-08 23:29:50 +0200
commit7675203f977773fa8b86ff450b54ca536e760270 (patch)
treeb0a217e48dcc8364a455d7227794bba3411f1f2d
parentd3a6c1f97dac103273ebb53aefed0cce6688ddde (diff)
build fix for pedantic compilers
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommand.h6
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandTags.h14
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 *********************************\