LLVM: llvm::detail::PointerSumTypeHelper< TagT, MemberTs > Struct Template Reference (original) (raw)
A helper template for implementing [PointerSumType](classllvm%5F1%5F1PointerSumType.html "A sum type over pointer-like types."). More...
#include "[llvm/ADT/PointerSumType.h](PointerSumType%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| enum | : uint64_t { PointerMask = static_cast<uint64_t>(-1) << NumTagBits , TagMask = ~PointerMask } |
| Static Public Attributes | |
|---|---|
| static constexpr int | NumTagBits |
| static constexpr TagT | MinTag |
template<typename TagT, typename... MemberTs>
struct llvm::detail::PointerSumTypeHelper< TagT, MemberTs >
A helper template for implementing [PointerSumType](classllvm%5F1%5F1PointerSumType.html "A sum type over pointer-like types.").
It provides fast compile-time lookup of the member from a particular tag value, along with useful constants and compile time checking infrastructure..
Definition at line 206 of file PointerSumType.h.
◆ anonymous enum
template<typename TagT, typename... MemberTs>
◆ LookupOverload() [1/2]
template<typename TagT, typename... MemberTs>
template
◆ LookupOverload() [2/2]
template<typename TagT, typename... MemberTs>
template<TagT N, typename PointerT, typename TraitsT>
◆ MinTag
template<typename TagT, typename... MemberTs>
Initial value:
=
static_cast<TagT>(std::min({static_cast<TagT>(MemberTs::Tag)...}))
Definition at line 234 of file PointerSumType.h.
◆ NumTagBits
template<typename TagT, typename... MemberTs>
Initial value:
=
std::min({MemberTs::TraitsT::NumLowBitsAvailable...})
Definition at line 230 of file PointerSumType.h.
The documentation for this struct was generated from the following file:
- include/llvm/ADT/PointerSumType.h