From a0a6f9563ca85f4bdf972fe67b3ad4798505f76e Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 23 Apr 2024 11:59:45 +0200 Subject: Build fix for clang <= 14 (cherry picked from commit 5f31d7cb88e77104c10f6dda1b082809471687a3) --- src/server/game/Movement/Spline/MoveSplineFlag.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/server') 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 struct FlagAccessor { + // force compile time evaluation - workaround for clang <= 14 + static constexpr MoveSplineFlagEnum DisallowedFlag = std::integral_constant::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; }; -- cgit v1.2.3