10template <
typename FlagType>
13 using UnderlyingType = __underlying_type(
FlagType);
26 bool HasAny(
FlagType Contains, std::memory_order Order = std::memory_order_seq_cst)
28 return (Flags.load(Order) & (UnderlyingType)Contains) != 0;
31 FlagType Get(std::memory_order Order = std::memory_order_seq_cst)
const
38 UnderlyingType Expected = Flags.load(Order);
39 return Flags.compare_exchange_strong(Expected, (UnderlyingType)
FlagsToSet);
43 std::atomic<UnderlyingType> Flags{0};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition AtomicFlags.h:12
FlagType Add(FlagType FlagsToAdd, std::memory_order Order=std::memory_order_seq_cst)
Definition AtomicFlags.h:16
FlagType Get(std::memory_order Order=std::memory_order_seq_cst) const
Definition AtomicFlags.h:31
bool TrySet(FlagType FlagsToSet, std::memory_order Order=std::memory_order_seq_cst)
Definition AtomicFlags.h:36
FlagType Remove(FlagType FlagsToAdd, std::memory_order Order=std::memory_order_seq_cst)
Definition AtomicFlags.h:21
bool HasAny(FlagType Contains, std::memory_order Order=std::memory_order_seq_cst)
Definition AtomicFlags.h:26
Definition AdvancedWidgetsModule.cpp:13