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>>
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)
 
template<typename e , typename = std::enable_if_t<is_bitmask_enum<e>::value>>
e & operator<<= (e &lhs, e rhs)
 
template<typename e , typename = std::enable_if_t<is_bitmask_enum<e>::value>>
e & operator>>= (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 145 of file BitmaskEnum.h.

References E.

◆ bitWidth()

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

Definition at line 140 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 125 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 160 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 189 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 170 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,
rhs 
)

Definition at line 201 of file BitmaskEnum.h.

◆ 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 175 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,
rhs 
)

Definition at line 207 of file BitmaskEnum.h.

◆ 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 165 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 195 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 155 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 183 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 150 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 133 of file BitmaskEnum.h.

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

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