Classes | Typedefs | Enumerations | Functions
absl::internal_any_invocable Namespace Reference

Classes

struct  ConversionConstruct
 
class  CoreImpl
 
struct  ForwardedParameter
 
class  Impl
 
struct  IsAnyInvocable
 
struct  IsAnyInvocable< AnyInvocable< Sig > >
 
struct  IsInPlaceType
 
struct  IsInPlaceType< absl::in_place_type_t< T > >
 
class  TrivialDeleter
 
struct  TypedConversionConstruct
 
union  TypeErasedState
 
struct  UnwrapStdReferenceWrapperImpl
 
struct  UnwrapStdReferenceWrapperImpl< std::reference_wrapper< T > >
 

Typedefs

template<class Sig , class F , class = absl::enable_if_t< !std::is_same<RemoveCVRef<F>, AnyInvocable<Sig>>::value>>
using CanAssign = True< absl::enable_if_t< Impl< Sig >::template CallIsValid< F >::value >, absl::enable_if_t< Impl< Sig >::template CallIsNoexceptIfSigIsNoexcept< F >::value >, absl::enable_if_t< std::is_constructible< absl::decay_t< F >, F >::value > >
 
template<class Sig , class F >
using CanAssignReferenceWrapper = True< absl::enable_if_t< Impl< Sig >::template CallIsValid< std::reference_wrapper< F > >::value >, absl::enable_if_t< Impl< Sig >::template CallIsNoexceptIfSigIsNoexcept< std::reference_wrapper< F > >::value > >
 
template<class Sig , class F , class = absl::enable_if_t< !std::is_same<RemoveCVRef<F>, AnyInvocable<Sig>>::value>>
using CanConvert = True< absl::enable_if_t<!IsInPlaceType< RemoveCVRef< F > >::value >, absl::enable_if_t< Impl< Sig >::template CallIsValid< F >::value >, absl::enable_if_t< Impl< Sig >::template CallIsNoexceptIfSigIsNoexcept< F >::value >, absl::enable_if_t< std::is_constructible< absl::decay_t< F >, F >::value > >
 
template<class Sig , class F , class... Args>
using CanEmplace = True< absl::enable_if_t< Impl< Sig >::template CallIsValid< F >::value >, absl::enable_if_t< Impl< Sig >::template CallIsNoexceptIfSigIsNoexcept< F >::value >, absl::enable_if_t< std::is_constructible< absl::decay_t< F >, Args... >::value > >
 
template<class T >
using ForwardedParameterType = typename ForwardedParameter< T >::type
 
template<bool SigIsNoexcept, class ReturnType , class... P>
using InvokerType = ReturnType(TypeErasedState *, ForwardedParameterType< P >...) ABSL_INTERNAL_NOEXCEPT_SPEC(SigIsNoexcept)
 
template<class T >
using IsStoredLocally = std::integral_constant< bool, sizeof(T)<=kStorageSize &&alignof(T)<=kAlignment &&kAlignment % alignof(T)==0 &&std::is_nothrow_move_constructible< T >::value >
 
using ManagerType = void(FunctionToCall, TypeErasedState *, TypeErasedState *) ABSL_INTERNAL_NOEXCEPT_SPEC(true)
 
template<class T >
using RemoveCVRef = typename std::remove_cv< typename std::remove_reference< T >::type >::type
 
template<class... T>
using True = std::integral_constant< bool, sizeof(absl::void_t< T... > *) !=0 >
 
template<class T >
using UnwrapStdReferenceWrapper = typename UnwrapStdReferenceWrapperImpl< T >::type
 

Enumerations

enum  FunctionToCall : bool { FunctionToCall::relocate_from_to, FunctionToCall::dispose }
 
enum  StorageProperty : std::size_t { kAlignment = alignof(std::max_align_t), kStorageSize = sizeof(void*) * 2 }
 

Functions

 ABSL_INTERNAL_ANY_INVOCABLE_IMPL (, &&, &&)
 
 ABSL_INTERNAL_ANY_INVOCABLE_IMPL (, &, &)
 
 ABSL_INTERNAL_ANY_INVOCABLE_IMPL (,, &)
 
 ABSL_INTERNAL_ANY_INVOCABLE_IMPL (const, &&, const &&)
 
 ABSL_INTERNAL_ANY_INVOCABLE_IMPL (const, &, const &)
 
 ABSL_INTERNAL_ANY_INVOCABLE_IMPL (const,, const &)
 
void EmptyManager (FunctionToCall, TypeErasedState *, TypeErasedState *) noexcept
 
template<typename T >
T && ForwardImpl (std::false_type)
 
template<typename T >
T ForwardImpl (std::true_type)
 
template<class ReturnType , class F , class... P, typename = absl::enable_if_t<std::is_void<ReturnType>::value>>
void InvokeR (F &&f, P &&... args)
 
template<class ReturnType , class F , class... P, absl::enable_if_t<!std::is_void< ReturnType >::value, int > = 0>
ReturnType InvokeR (F &&f, P &&... args)
 
template<bool NoExceptSrc, bool NoExceptDest, class... T>
constexpr bool IsCompatibleConversion (CoreImpl< NoExceptSrc, T... > *, CoreImpl< NoExceptDest, T... > *)
 
constexpr bool IsCompatibleConversion (void *, void *)
 
template<bool SigIsNoexcept, class ReturnType , class QualTRef , class... P>
ReturnType LocalInvoker (TypeErasedState *const state, ForwardedParameterType< P >... args) noexcept(SigIsNoexcept)
 
template<class T >
void LocalManagerNontrivial (FunctionToCall operation, TypeErasedState *const from, TypeErasedState *const to) noexcept
 
void LocalManagerTrivial (FunctionToCall, TypeErasedState *const from, TypeErasedState *const to) noexcept
 
template<class T >
TObjectInLocalStorage (TypeErasedState *const state)
 
template<bool SigIsNoexcept, class ReturnType , class QualTRef , class... P>
ReturnType RemoteInvoker (TypeErasedState *const state, ForwardedParameterType< P >... args) noexcept(SigIsNoexcept)
 
template<class T >
void RemoteManagerNontrivial (FunctionToCall operation, TypeErasedState *const from, TypeErasedState *const to) noexcept
 
void RemoteManagerTrivial (FunctionToCall operation, TypeErasedState *const from, TypeErasedState *const to) noexcept
 

Typedef Documentation

◆ CanAssign

template<class Sig , class F , class = absl::enable_if_t< !std::is_same<RemoveCVRef<F>, AnyInvocable<Sig>>::value>>
using absl::internal_any_invocable::CanAssign = typedef True<absl::enable_if_t<Impl<Sig>::template CallIsValid<F>::value>, absl::enable_if_t< Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept<F>::value>, absl::enable_if_t<std::is_constructible<absl::decay_t<F>, F>::value> >

Definition at line 716 of file internal/any_invocable.h.

◆ CanAssignReferenceWrapper

template<class Sig , class F >
using absl::internal_any_invocable::CanAssignReferenceWrapper = typedef True<absl::enable_if_t< Impl<Sig>::template CallIsValid<std::reference_wrapper<F> >::value>, absl::enable_if_t<Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept< std::reference_wrapper<F> >::value> >

Definition at line 724 of file internal/any_invocable.h.

◆ CanConvert

template<class Sig , class F , class = absl::enable_if_t< !std::is_same<RemoveCVRef<F>, AnyInvocable<Sig>>::value>>
using absl::internal_any_invocable::CanConvert = typedef True<absl::enable_if_t<!IsInPlaceType<RemoveCVRef<F> >::value>, absl::enable_if_t<Impl<Sig>::template CallIsValid<F>::value>, absl::enable_if_t< Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept<F>::value>, absl::enable_if_t<std::is_constructible<absl::decay_t<F>, F>::value> >

Definition at line 698 of file internal/any_invocable.h.

◆ CanEmplace

template<class Sig , class F , class... Args>
using absl::internal_any_invocable::CanEmplace = typedef True< absl::enable_if_t<Impl<Sig>::template CallIsValid<F>::value>, absl::enable_if_t< Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept<F>::value>, absl::enable_if_t<std::is_constructible<absl::decay_t<F>, Args...>::value> >

Definition at line 706 of file internal/any_invocable.h.

◆ ForwardedParameterType

template<class T >
using absl::internal_any_invocable::ForwardedParameterType = typedef typename ForwardedParameter<T>::type

Definition at line 168 of file internal/any_invocable.h.

◆ InvokerType

template<bool SigIsNoexcept, class ReturnType , class... P>
using absl::internal_any_invocable::InvokerType = typedef ReturnType(TypeErasedState*, ForwardedParameterType<P>...) ABSL_INTERNAL_NOEXCEPT_SPEC(SigIsNoexcept)

Definition at line 231 of file internal/any_invocable.h.

◆ IsStoredLocally

template<class T >
using absl::internal_any_invocable::IsStoredLocally = typedef std::integral_constant< bool, sizeof(T) <= kStorageSize && alignof(T) <= kAlignment && kAlignment % alignof(T) == 0 && std::is_nothrow_move_constructible<T>::value>

Definition at line 114 of file internal/any_invocable.h.

◆ ManagerType

Definition at line 225 of file internal/any_invocable.h.

◆ RemoveCVRef

template<class T >
using absl::internal_any_invocable::RemoveCVRef = typedef typename std::remove_cv<typename std::remove_reference<T>::type>::type

Definition at line 119 of file internal/any_invocable.h.

◆ True

template<class... T>
using absl::internal_any_invocable::True = typedef std::integral_constant<bool, sizeof(absl::void_t<T...>*) != 0>

Definition at line 687 of file internal/any_invocable.h.

◆ UnwrapStdReferenceWrapper

Definition at line 679 of file internal/any_invocable.h.

Enumeration Type Documentation

◆ FunctionToCall

Enumerator
relocate_from_to 
dispose 

Definition at line 178 of file internal/any_invocable.h.

◆ StorageProperty

Enumerator
kAlignment 
kStorageSize 

Definition at line 91 of file internal/any_invocable.h.

Function Documentation

◆ ABSL_INTERNAL_ANY_INVOCABLE_IMPL() [1/6]

absl::internal_any_invocable::ABSL_INTERNAL_ANY_INVOCABLE_IMPL ( &&  ,
&&   
)

◆ ABSL_INTERNAL_ANY_INVOCABLE_IMPL() [2/6]

absl::internal_any_invocable::ABSL_INTERNAL_ANY_INVOCABLE_IMPL ( ,
 
)

◆ ABSL_INTERNAL_ANY_INVOCABLE_IMPL() [3/6]

absl::internal_any_invocable::ABSL_INTERNAL_ANY_INVOCABLE_IMPL ( )

◆ ABSL_INTERNAL_ANY_INVOCABLE_IMPL() [4/6]

absl::internal_any_invocable::ABSL_INTERNAL_ANY_INVOCABLE_IMPL ( const  ,
&&  ,
const &&   
)

◆ ABSL_INTERNAL_ANY_INVOCABLE_IMPL() [5/6]

absl::internal_any_invocable::ABSL_INTERNAL_ANY_INVOCABLE_IMPL ( const  ,
,
const  
)

◆ ABSL_INTERNAL_ANY_INVOCABLE_IMPL() [6/6]

absl::internal_any_invocable::ABSL_INTERNAL_ANY_INVOCABLE_IMPL ( const  ,
const  
)

◆ EmptyManager()

void absl::internal_any_invocable::EmptyManager ( FunctionToCall  ,
TypeErasedState ,
TypeErasedState  
)
inlinenoexcept

Definition at line 234 of file internal/any_invocable.h.

◆ ForwardImpl() [1/2]

template<typename T >
T&& absl::internal_any_invocable::ForwardImpl ( std::false_type  )

◆ ForwardImpl() [2/2]

template<typename T >
T absl::internal_any_invocable::ForwardImpl ( std::true_type  )

◆ InvokeR() [1/2]

template<class ReturnType , class F , class... P, typename = absl::enable_if_t<std::is_void<ReturnType>::value>>
void absl::internal_any_invocable::InvokeR ( F &&  f,
P &&...  args 
)

Definition at line 129 of file internal/any_invocable.h.

◆ InvokeR() [2/2]

template<class ReturnType , class F , class... P, absl::enable_if_t<!std::is_void< ReturnType >::value, int > = 0>
ReturnType absl::internal_any_invocable::InvokeR ( F &&  f,
P &&...  args 
)

Definition at line 135 of file internal/any_invocable.h.

◆ IsCompatibleConversion() [1/2]

template<bool NoExceptSrc, bool NoExceptDest, class... T>
constexpr bool absl::internal_any_invocable::IsCompatibleConversion ( CoreImpl< NoExceptSrc, T... > *  ,
CoreImpl< NoExceptDest, T... > *   
)
constexpr

Definition at line 419 of file internal/any_invocable.h.

◆ IsCompatibleConversion() [2/2]

constexpr bool absl::internal_any_invocable::IsCompatibleConversion ( void *  ,
void *   
)
constexpr

Definition at line 417 of file internal/any_invocable.h.

◆ LocalInvoker()

template<bool SigIsNoexcept, class ReturnType , class QualTRef , class... P>
ReturnType absl::internal_any_invocable::LocalInvoker ( TypeErasedState *const  state,
ForwardedParameterType< P >...  args 
)
noexcept

Definition at line 291 of file internal/any_invocable.h.

◆ LocalManagerNontrivial()

template<class T >
void absl::internal_any_invocable::LocalManagerNontrivial ( FunctionToCall  operation,
TypeErasedState *const  from,
TypeErasedState *const  to 
)
noexcept

Definition at line 265 of file internal/any_invocable.h.

◆ LocalManagerTrivial()

void absl::internal_any_invocable::LocalManagerTrivial ( FunctionToCall  ,
TypeErasedState *const  from,
TypeErasedState *const  to 
)
inlinenoexcept

Definition at line 240 of file internal/any_invocable.h.

◆ ObjectInLocalStorage()

template<class T >
T& absl::internal_any_invocable::ObjectInLocalStorage ( TypeErasedState *const  state)

Definition at line 196 of file internal/any_invocable.h.

◆ RemoteInvoker()

template<bool SigIsNoexcept, class ReturnType , class QualTRef , class... P>
ReturnType absl::internal_any_invocable::RemoteInvoker ( TypeErasedState *const  state,
ForwardedParameterType< P >...  args 
)
noexcept

Definition at line 349 of file internal/any_invocable.h.

◆ RemoteManagerNontrivial()

template<class T >
void absl::internal_any_invocable::RemoteManagerNontrivial ( FunctionToCall  operation,
TypeErasedState *const  from,
TypeErasedState *const  to 
)
noexcept

Definition at line 328 of file internal/any_invocable.h.

◆ RemoteManagerTrivial()

void absl::internal_any_invocable::RemoteManagerTrivial ( FunctionToCall  operation,
TypeErasedState *const  from,
TypeErasedState *const  to 
)
inlinenoexcept

Definition at line 306 of file internal/any_invocable.h.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:02:54