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:
- include/llvm/ADT/FunctionExtras.h