Refactor enum flags with __underlying_type and new EnumHasAnyFlags/EnumHasAllFlags

Fixes #832
Closes #886
This commit is contained in:
Wojtek Figat
2023-01-15 12:44:39 +01:00
parent 810f7fb803
commit f127bbebe1
101 changed files with 424 additions and 414 deletions

View File

@@ -350,7 +350,7 @@ public:
/// </summary>
FORCE_INLINE bool IsTransformStatic() const
{
return (_staticFlags & StaticFlags::Transform) != 0;
return (_staticFlags & StaticFlags::Transform) != StaticFlags::None;
}
/// <summary>
@@ -373,7 +373,7 @@ public:
/// </summary>
FORCE_INLINE bool HasStaticFlag(StaticFlags flag) const
{
return (_staticFlags & flag) == (int)flag;
return EnumHasAllFlags(_staticFlags, flag);
}
/// <summary>
@@ -391,7 +391,7 @@ public:
/// <param name="flags">The flags to remove.</param>
FORCE_INLINE void RemoveStaticFlags(StaticFlags flags)
{
SetStaticFlags(static_cast<StaticFlags>(_staticFlags & ~flags));
SetStaticFlags(_staticFlags & ~flags);
}
/// <summary>
@@ -401,7 +401,7 @@ public:
/// <param name="value">The target value of the flag.</param>
FORCE_INLINE void SetStaticFlag(StaticFlags flag, bool value)
{
SetStaticFlags(static_cast<StaticFlags>(_staticFlags & ~flag) | (value ? flag : StaticFlags::None));
SetStaticFlags((_staticFlags & ~flag) | (value ? flag : StaticFlags::None));
}
public: