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: