LLVM 23.0.0git
llvm::detail::UniqueFunctionBase< ReturnT, ParamTs > Class Template Reference

#include "llvm/ADT/FunctionExtras.h"

Inheritance diagram for llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >:
[legend]

Classes

struct  AdjustedParamTBase
struct  AdjustedParamTBase< T & >
struct  AdjustedParamTBase< T && >
struct  CalledAs
union  StorageT

Public Member Functions

 operator bool () const

Protected Types

template<typename T>
using AdjustedParamT = typename AdjustedParamTBase<T>::type
using CallPtrT
using DestroyMovePtrT

Protected Member Functions

template<typename CallableT, typename CalledAsT>
 UniqueFunctionBase (CallableT Callable, CalledAs< CalledAsT >)
 ~UniqueFunctionBase ()
 UniqueFunctionBase (UniqueFunctionBase &&RHS) noexcept
UniqueFunctionBaseoperator= (UniqueFunctionBase &&RHS) noexcept
 UniqueFunctionBase ()=default

Protected Attributes

union llvm::detail::UniqueFunctionBase::StorageT Storage
CallPtrT CallPtr = nullptr
DestroyMovePtrT DestroyMovePtr = nullptr

Static Protected Attributes

static constexpr size_t InlineStorageSize = sizeof(void *) * 3
static constexpr size_t InlineStorageAlign = alignof(void *)

Detailed Description

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

Definition at line 74 of file FunctionExtras.h.

Member Typedef Documentation

◆ AdjustedParamT

template<typename ReturnT, typename... ParamTs>
template<typename T>
using llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::AdjustedParamT = typename AdjustedParamTBase<T>::type
protected

Definition at line 107 of file FunctionExtras.h.

◆ CallPtrT

template<typename ReturnT, typename... ParamTs>
using llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::CallPtrT
protected
Initial value:
ReturnT (*)(const UniqueFunctionBase *Self,
typename AdjustedParamTBase< T >::type AdjustedParamT
UniqueFunctionBase(CallableT Callable, CalledAs< CalledAsT >)

Definition at line 111 of file FunctionExtras.h.

◆ DestroyMovePtrT

template<typename ReturnT, typename... ParamTs>
using llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::DestroyMovePtrT
protected
Initial value:

Definition at line 113 of file FunctionExtras.h.

Constructor & Destructor Documentation

◆ UniqueFunctionBase() [1/3]

template<typename ReturnT, typename... ParamTs>
template<typename CallableT, typename CalledAsT>
llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::UniqueFunctionBase ( CallableT Callable,
CalledAs< CalledAsT >  )
inlineprotected

Definition at line 142 of file FunctionExtras.h.

◆ ~UniqueFunctionBase()

template<typename ReturnT, typename... ParamTs>
llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::~UniqueFunctionBase ( )
inlineprotected

◆ UniqueFunctionBase() [2/3]

template<typename ReturnT, typename... ParamTs>
llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::UniqueFunctionBase ( UniqueFunctionBase< ReturnT, ParamTs > && RHS)
inlineprotectednoexcept

Definition at line 202 of file FunctionExtras.h.

◆ UniqueFunctionBase() [3/3]

template<typename ReturnT, typename... ParamTs>
llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::UniqueFunctionBase ( )
protecteddefault

Member Function Documentation

◆ operator bool()

template<typename ReturnT, typename... ParamTs>
llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::operator bool ( ) const
inlineexplicit

Definition at line 233 of file FunctionExtras.h.

◆ operator=()

template<typename ReturnT, typename... ParamTs>
UniqueFunctionBase & llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::operator= ( UniqueFunctionBase< ReturnT, ParamTs > && RHS)
inlineprotectednoexcept

Definition at line 218 of file FunctionExtras.h.

Member Data Documentation

◆ CallPtr

template<typename ReturnT, typename... ParamTs>
CallPtrT llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::CallPtr = nullptr
protected

Definition at line 132 of file FunctionExtras.h.

◆ DestroyMovePtr

template<typename ReturnT, typename... ParamTs>
DestroyMovePtrT llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::DestroyMovePtr = nullptr
protected

◆ InlineStorageAlign

template<typename ReturnT, typename... ParamTs>
size_t llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::InlineStorageAlign = alignof(void *)
staticconstexprprotected

Definition at line 77 of file FunctionExtras.h.

◆ InlineStorageSize

template<typename ReturnT, typename... ParamTs>
size_t llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::InlineStorageSize = sizeof(void *) * 3
staticconstexprprotected

Definition at line 76 of file FunctionExtras.h.

◆ Storage

template<typename ReturnT, typename... ParamTs>
union llvm::detail::UniqueFunctionBase::StorageT llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::Storage
protected

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