LLVM 20.0.0git
Functions
llvm::BitmaskEnumDetail Namespace Reference

Functions

template<typename E >
constexpr std::underlying_type_t< EMask ()
 Get a bitmask with 1s in all places up to the high-order bit of E's largest value.
 
template<typename E >
constexpr std::underlying_type_t< EUnderlying (E Val)
 Check that Val is in range for E, and return Val cast to E's underlying type.
 
constexpr unsigned bitWidth (uint64_t Value)
 
template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr bool any (E Val)
 
template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator~ (E Val)
 
template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator| (E LHS, E RHS)
 
template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator& (E LHS, E RHS)
 
template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator^ (E LHS, E RHS)
 
template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
Eoperator|= (E &LHS, E RHS)
 
template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
Eoperator&= (E &LHS, E RHS)
 
template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
Eoperator^= (E &LHS, E RHS)
 

Function Documentation

◆ any()

template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr bool llvm::BitmaskEnumDetail::any ( E  Val)
constexpr

Definition at line 141 of file BitmaskEnum.h.

References E.

◆ bitWidth()

constexpr unsigned llvm::BitmaskEnumDetail::bitWidth ( uint64_t  Value)
constexpr

Definition at line 136 of file BitmaskEnum.h.

References bitWidth().

Referenced by bitWidth().

◆ Mask()

template<typename E >
constexpr std::underlying_type_t< E > llvm::BitmaskEnumDetail::Mask ( )
constexpr

Get a bitmask with 1s in all places up to the high-order bit of E's largest value.

Definition at line 121 of file BitmaskEnum.h.

References llvm::NextPowerOf2().

◆ operator&()

template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E llvm::BitmaskEnumDetail::operator& ( E  LHS,
E  RHS 
)
constexpr

Definition at line 156 of file BitmaskEnum.h.

References E, LHS, RHS, and Underlying().

◆ operator&=()

template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E & llvm::BitmaskEnumDetail::operator&= ( E LHS,
E  RHS 
)

Definition at line 175 of file BitmaskEnum.h.

References LHS, and RHS.

◆ operator^()

template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E llvm::BitmaskEnumDetail::operator^ ( E  LHS,
E  RHS 
)
constexpr

Definition at line 161 of file BitmaskEnum.h.

References E, LHS, RHS, and Underlying().

◆ operator^=()

template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E & llvm::BitmaskEnumDetail::operator^= ( E LHS,
E  RHS 
)

Definition at line 181 of file BitmaskEnum.h.

References LHS, and RHS.

◆ operator|()

template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E llvm::BitmaskEnumDetail::operator| ( E  LHS,
E  RHS 
)
constexpr

Definition at line 151 of file BitmaskEnum.h.

References E, LHS, RHS, and Underlying().

◆ operator|=()

template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E & llvm::BitmaskEnumDetail::operator|= ( E LHS,
E  RHS 
)

Definition at line 169 of file BitmaskEnum.h.

References LHS, and RHS.

◆ operator~()

template<typename E , typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E llvm::BitmaskEnumDetail::operator~ ( E  Val)
constexpr

Definition at line 146 of file BitmaskEnum.h.

References E.

◆ Underlying()

template<typename E >
constexpr std::underlying_type_t< E > llvm::BitmaskEnumDetail::Underlying ( E  Val)
constexpr

Check that Val is in range for E, and return Val cast to E's underlying type.

Definition at line 129 of file BitmaskEnum.h.

References assert(), llvm::to_underlying(), and Underlying().

Referenced by operator&(), operator^(), operator|(), and Underlying().