UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
EnumClassFlags.h File Reference

Go to the source code of this file.

Macros

#define ENUM_CLASS_FLAGS(Enum)
 
#define FRIEND_ENUM_CLASS_FLAGS(Enum)
 

Functions

template<typename Enum >
constexpr bool EnumHasAllFlags (Enum Flags, Enum Contains)
 
template<typename Enum >
constexpr bool EnumHasAnyFlags (Enum Flags, Enum Contains)
 
template<typename Enum >
constexpr bool EnumOnlyContainsFlags (Enum Flags, Enum Contains)
 
template<typename Enum >
constexpr bool EnumHasOneFlag (Enum Flags)
 
template<typename Enum >
constexpr bool EnumHasAnyOneFlag (Enum Flags, Enum OneOfFlags)
 
template<typename Enum >
constexpr void EnumAddFlags (Enum &Flags, Enum FlagsToAdd)
 
template<typename Enum >
constexpr void EnumRemoveFlags (Enum &Flags, Enum FlagsToRemove)
 
template<typename Enum >
constexpr Enum EnumLowestSetFlag (Enum Flags)
 
template<typename Enum >
constexpr Enum EnumRemoveLowestSetFlag (Enum Flags)
 
template<typename Enum >
constexpr int EnumNumSetFlags (Enum Flags)
 

Macro Definition Documentation

◆ ENUM_CLASS_FLAGS

#define ENUM_CLASS_FLAGS (   Enum)
Value:
inline constexpr Enum& operator|=(Enum& Lhs, Enum Rhs) { return Lhs = (Enum)((__underlying_type(Enum))Lhs | (__underlying_type(Enum))Rhs); } \
inline constexpr Enum& operator&=(Enum& Lhs, Enum Rhs) { return Lhs = (Enum)((__underlying_type(Enum))Lhs & (__underlying_type(Enum))Rhs); } \
inline constexpr Enum& operator^=(Enum& Lhs, Enum Rhs) { return Lhs = (Enum)((__underlying_type(Enum))Lhs ^ (__underlying_type(Enum))Rhs); } \
inline constexpr Enum operator| (Enum Lhs, Enum Rhs) { return (Enum)((__underlying_type(Enum))Lhs | (__underlying_type(Enum))Rhs); } \
inline constexpr Enum operator& (Enum Lhs, Enum Rhs) { return (Enum)((__underlying_type(Enum))Lhs & (__underlying_type(Enum))Rhs); } \
inline constexpr Enum operator^ (Enum Lhs, Enum Rhs) { return (Enum)((__underlying_type(Enum))Lhs ^ (__underlying_type(Enum))Rhs); } \
inline constexpr bool operator! (Enum E) { return !(__underlying_type(Enum))E; } \
inline constexpr Enum operator~ (Enum E) { return (Enum)~(__underlying_type(Enum))E; }
constexpr EUpdateTransformFlags operator&(EUpdateTransformFlags Left, EUpdateTransformFlags Right)
Definition ActorComponent.h:111
constexpr bool operator!(EUpdateTransformFlags Value)
Definition ActorComponent.h:116
constexpr EUpdateTransformFlags operator|(EUpdateTransformFlags Left, EUpdateTransformFlags Right)
Definition ActorComponent.h:106
constexpr EUpdateTransformFlags operator~(EUpdateTransformFlags Value)
Definition ActorComponent.h:121
Examples
/work/Engine/Source/Runtime/UMG/Public/Components/Widget.h.

◆ FRIEND_ENUM_CLASS_FLAGS

#define FRIEND_ENUM_CLASS_FLAGS (   Enum)
Value:
friend constexpr Enum& operator|=(Enum& Lhs, Enum Rhs); \
friend constexpr Enum& operator&=(Enum& Lhs, Enum Rhs); \
friend constexpr Enum& operator^=(Enum& Lhs, Enum Rhs); \
friend constexpr Enum operator| (Enum Lhs, Enum Rhs); \
friend constexpr Enum operator& (Enum Lhs, Enum Rhs); \
friend constexpr Enum operator^ (Enum Lhs, Enum Rhs); \
friend constexpr bool operator! (Enum E); \
friend constexpr Enum operator~ (Enum E);

Function Documentation

◆ EnumAddFlags()

template<typename Enum >
constexpr void EnumAddFlags ( Enum Flags,
Enum  FlagsToAdd 
)
constexpr

◆ EnumHasAllFlags()

template<typename Enum >
constexpr bool EnumHasAllFlags ( Enum  Flags,
Enum  Contains 
)
constexpr

◆ EnumHasAnyFlags()

template<typename Enum >
constexpr bool EnumHasAnyFlags ( Enum  Flags,
Enum  Contains 
)
constexpr

◆ EnumHasAnyOneFlag()

template<typename Enum >
constexpr bool EnumHasAnyOneFlag ( Enum  Flags,
Enum  OneOfFlags 
)
constexpr

Check if Flags has one and only one of the flags specified in OneOfFlags set

Parameters
FlagsThe value to check.
OneOfFlagsThe flags to check the value for.
Returns
true if Flags has one and only one of the flags in OneOfFlags set. false otherwise.

◆ EnumHasOneFlag()

template<typename Enum >
constexpr bool EnumHasOneFlag ( Enum  Flags)
constexpr

Check if Flags has one and only one flag set. This can also be thought of as a check for a power-of-2 value.

Parameters
FlagsThe value to check.
Returns
true if Flags has only one flag set. false otherwise.

◆ EnumLowestSetFlag()

template<typename Enum >
constexpr Enum EnumLowestSetFlag ( Enum  Flags)
constexpr

◆ EnumNumSetFlags()

template<typename Enum >
constexpr int EnumNumSetFlags ( Enum  Flags)
constexpr

◆ EnumOnlyContainsFlags()

template<typename Enum >
constexpr bool EnumOnlyContainsFlags ( Enum  Flags,
Enum  Contains 
)
constexpr

Check if the Flags value contains only the flags specified by the Contains argument. It is not required that any of the flags in Contains be set in Flags and Flags may be any combination of the flags specified by Contains (including k=0). But if Flags contains any flag not in Contains, this function will return false. This function may also be understood as !EnumContainsAnyFlags(Flags, ~Contains).

Parameters
FlagsThe value to check.
ContainsThe flags to check the value against.
Returns
true if Flags consists of only the flags specified by Contains. false otherwise.
Note
Returns true if Flags is empty.

◆ EnumRemoveFlags()

template<typename Enum >
constexpr void EnumRemoveFlags ( Enum Flags,
Enum  FlagsToRemove 
)
constexpr

◆ EnumRemoveLowestSetFlag()

template<typename Enum >
constexpr Enum EnumRemoveLowestSetFlag ( Enum  Flags)
constexpr