LLVM: llvm::detail::UniqueFunctionBase< ReturnT, ParamTs > Class Template Reference (original) (raw)

#include "[llvm/ADT/FunctionExtras.h](FunctionExtras%5F8h%5Fsource.html)"

Classes
struct AdjustedParamTBase
struct AdjustedParamTBase< T & >
struct AdjustedParamTBase< T && >
struct CallbacksHolder
struct CalledAs
struct NonTrivialCallbacks
A struct we use to aggregate three callbacks when we need full set of operations. More...
union StorageUnionT
struct TrivialCallback
A struct to hold a single trivial callback with sufficient alignment for our bitpacking. More...
Public Member Functions
Protected Types
template<typename T>
using AdjustedParamT = typename AdjustedParamTBase<T>::type
using CallPtrT
using MovePtrT = void (*)(void *LHSCallableAddr, void *RHSCallableAddr)
using DestroyPtrT = void (*)(void *CallableAddr)
using CallbackPointerUnionT
Protected Member Functions
bool isInlineStorage () const
bool isTrivialCallback () const
CallPtrT getTrivialCallback () const
NonTrivialCallbacks * getNonTrivialCallbacks () const
CallPtrT getCallPtr () const
void * getCalleePtr () const
void * getInlineStorage () const
void * getOutOfLineStorage () const
size_t getOutOfLineStorageSize () const
size_t getOutOfLineStorageAlignment () const
void setOutOfLineStorage (void *Ptr, size_t Size, size_t Alignment)
template<typename CallableT, typename CalledAsT>
UniqueFunctionBase (CallableT Callable, CalledAs< CalledAsT >)
~UniqueFunctionBase ()
UniqueFunctionBase (UniqueFunctionBase &&RHS) noexcept
UniqueFunctionBase & operator= (UniqueFunctionBase &&RHS) noexcept
UniqueFunctionBase ()=default
Static Protected Member Functions
template
static ReturnT CallImpl (void *CallableAddr, AdjustedParamT< ParamTs >... Params)
template
static void MoveImpl (void *LHSCallableAddr, void *RHSCallableAddr) noexcept
template
static void DestroyImpl (void *CallableAddr) noexcept
Static Protected Attributes
static constexpr size_t InlineStorageSize = sizeof(void *) * 3
static constexpr size_t InlineStorageAlign = alignof(void *)

template<typename ReturnT, typename... ParamTs>
class llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >

Definition at line 75 of file FunctionExtras.h.

AdjustedParamT

template<typename ReturnT, typename... ParamTs>

template<typename T>

CallbackPointerUnionT

template<typename ReturnT, typename... ParamTs>

Initial value:

A discriminated union of two or more pointer types, with the discriminator in the low bit of the poin...

Definition at line 134 of file FunctionExtras.h.

CallPtrT

template<typename ReturnT, typename... ParamTs>

Initial value:

ReturnT (*)(void *CallableAddr,

AdjustedParamT... Params)

typename AdjustedParamTBase< T >::type AdjustedParamT

Definition at line 112 of file FunctionExtras.h.

DestroyPtrT

template<typename ReturnT, typename... ParamTs>

MovePtrT

template<typename ReturnT, typename... ParamTs>

template<typename ReturnT, typename... ParamTs>

template<typename CallableT, typename CalledAsT>

~UniqueFunctionBase()

template<typename ReturnT, typename... ParamTs>

UniqueFunctionBase() [2/3]

template<typename ReturnT, typename... ParamTs>

UniqueFunctionBase() [3/3]

template<typename ReturnT, typename... ParamTs>

CallImpl()

template<typename ReturnT, typename... ParamTs>

template

DestroyImpl()

template<typename ReturnT, typename... ParamTs>

template

getCalleePtr()

template<typename ReturnT, typename... ParamTs>

getCallPtr()

template<typename ReturnT, typename... ParamTs>

getInlineStorage()

template<typename ReturnT, typename... ParamTs>

getNonTrivialCallbacks()

template<typename ReturnT, typename... ParamTs>

getOutOfLineStorage()

template<typename ReturnT, typename... ParamTs>

getOutOfLineStorageAlignment()

template<typename ReturnT, typename... ParamTs>

getOutOfLineStorageSize()

template<typename ReturnT, typename... ParamTs>

getTrivialCallback()

template<typename ReturnT, typename... ParamTs>

isInlineStorage()

template<typename ReturnT, typename... ParamTs>

isTrivialCallback()

template<typename ReturnT, typename... ParamTs>

MoveImpl()

template<typename ReturnT, typename... ParamTs>

template

| | inlinestaticprotectednoexcept | | -------------------------------- |

operator bool()

template<typename ReturnT, typename... ParamTs>

operator=()

template<typename ReturnT, typename... ParamTs>

setOutOfLineStorage()

template<typename ReturnT, typename... ParamTs>

CallbackAndInlineFlag

template<typename ReturnT, typename... ParamTs>

InlineStorageAlign

template<typename ReturnT, typename... ParamTs>

InlineStorageSize

template<typename ReturnT, typename... ParamTs>

StorageUnion

template<typename ReturnT, typename... ParamTs>


The documentation for this class was generated from the following file: