aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-04-23 11:59:45 +0200
committerOvahlord <dreadkiller@gmx.de>2024-05-28 16:44:17 +0200
commita0a6f9563ca85f4bdf972fe67b3ad4798505f76e (patch)
tree7acfd5b96dbb51d28038d06833a87b8b63a11491
parent6be8724264471f9588e91b1204b667e80b18772f (diff)
Build fix for clang <= 14
(cherry picked from commit 5f31d7cb88e77104c10f6dda1b082809471687a3)
-rw-r--r--src/server/game/Movement/Spline/MoveSplineFlag.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Movement/Spline/MoveSplineFlag.h b/src/server/game/Movement/Spline/MoveSplineFlag.h
index b44ac9d0adc..19fb0c6973f 100644
--- a/src/server/game/Movement/Spline/MoveSplineFlag.h
+++ b/src/server/game/Movement/Spline/MoveSplineFlag.h
@@ -116,8 +116,11 @@ namespace Movement
template <MoveSplineFlagEnum Flag>
struct FlagAccessor
{
+ // force compile time evaluation - workaround for clang <= 14
+ static constexpr MoveSplineFlagEnum DisallowedFlag = std::integral_constant<MoveSplineFlagEnum, GetDisallowedFlagsFor(Flag)>::value;
+
constexpr operator bool() const { return (Raw & Flag) != MoveSplineFlagEnum::None; }
- constexpr FlagAccessor& operator=(bool val) { if (val) { Raw = Raw & ~GetDisallowedFlagsFor(Flag) | Flag; } else Raw &= ~Flag; return *this; }
+ constexpr FlagAccessor& operator=(bool val) { if (val) { Raw = Raw & ~DisallowedFlag | Flag; } else Raw &= ~Flag; return *this; }
MoveSplineFlagEnum Raw;
};