Classes | Public Types | Public Member Functions | Public Attributes | List of all members
absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P > Class Template Reference

#include <any_invocable.h>

Classes

struct  IsCompatibleAnyInvocable
 
struct  IsCompatibleAnyInvocable< AnyInvocable< Sig > >
 

Public Types

template<class T >
using HasTrivialRemoteStorage = std::integral_constant< bool, std::is_trivially_destructible< T >::value &&alignof(T)<=ABSL_INTERNAL_DEFAULT_NEW_ALIGNMENT >
 
using result_type = ReturnType
 
enum  TargetType : int { TargetType::kPointer = 0, TargetType::kCompatibleAnyInvocable = 1, TargetType::kIncompatibleAnyInvocable = 2, TargetType::kOther = 3 }
 

Public Member Functions

void Clear ()
 
 CoreImpl () noexcept
 
template<class QualTRef , class... Args>
 CoreImpl (absl::in_place_type_t< QualTRef >, Args &&... args)
 
 CoreImpl (CoreImpl &&other) noexcept
 
template<class QualDecayedTRef , class F >
 CoreImpl (TypedConversionConstruct< QualDecayedTRef >, F &&f)
 
bool HasValue () const
 
template<int target_type, class QualDecayedTRef , class F , absl::enable_if_t< target_type==0, int > = 0>
void Initialize (F &&f)
 
template<int target_type, class QualDecayedTRef , class F , absl::enable_if_t< target_type==1, int > = 0>
void Initialize (F &&f)
 
template<int target_type, class QualDecayedTRef , class F , absl::enable_if_t< target_type==2, int > = 0>
void Initialize (F &&f)
 
template<int target_type, class QualDecayedTRef , class F , typename = absl::enable_if_t<target_type == 3>>
void Initialize (F &&f)
 
template<class T , typename = absl::enable_if_t<std::is_trivially_copyable<T>::value>>
void InitializeLocalManager ()
 
template<class T , absl::enable_if_t<!std::is_trivially_copyable< T >::value, int > = 0>
void InitializeLocalManager ()
 
template<class T , class... Args, typename = absl::enable_if_t<HasTrivialRemoteStorage<T>::value>>
void InitializeRemoteManager (Args &&... args)
 
template<class T , class... Args, absl::enable_if_t<!HasTrivialRemoteStorage< T >::value, int > = 0>
void InitializeRemoteManager (Args &&... args)
 
template<class QualTRef , class... Args, typename = absl::enable_if_t< IsStoredLocally<RemoveCVRef<QualTRef>>::value>>
void InitializeStorage (Args &&... args)
 
template<class QualTRef , class... Args, absl::enable_if_t<!IsStoredLocally< RemoveCVRef< QualTRef >>::value, int > = 0>
void InitializeStorage (Args &&... args)
 
CoreImploperator= (CoreImpl &&other) noexcept
 
 ~CoreImpl ()
 

Public Attributes

InvokerType< SigIsNoexcept, ReturnType, P... > * invoker_
 
ManagerTypemanager_
 
TypeErasedState state_
 

Detailed Description

template<bool SigIsNoexcept, class ReturnType, class... P>
class absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >

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

Member Typedef Documentation

◆ HasTrivialRemoteStorage

template<bool SigIsNoexcept, class ReturnType , class... P>
template<class T >
using absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::HasTrivialRemoteStorage = std::integral_constant<bool, std::is_trivially_destructible<T>::value && alignof(T) <= ABSL_INTERNAL_DEFAULT_NEW_ALIGNMENT>

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

◆ result_type

template<bool SigIsNoexcept, class ReturnType , class... P>
using absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::result_type = ReturnType

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

Member Enumeration Documentation

◆ TargetType

template<bool SigIsNoexcept, class ReturnType , class... P>
enum absl::internal_any_invocable::CoreImpl::TargetType : int
strong
Enumerator
kPointer 
kCompatibleAnyInvocable 
kIncompatibleAnyInvocable 
kOther 

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

Constructor & Destructor Documentation

◆ CoreImpl() [1/4]

template<bool SigIsNoexcept, class ReturnType , class... P>
absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::CoreImpl ( )
inlinenoexcept

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

◆ CoreImpl() [2/4]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<class QualDecayedTRef , class F >
absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::CoreImpl ( TypedConversionConstruct< QualDecayedTRef >  ,
F &&  f 
)
inlineexplicit

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

◆ CoreImpl() [3/4]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<class QualTRef , class... Args>
absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::CoreImpl ( absl::in_place_type_t< QualTRef >  ,
Args &&...  args 
)
inlineexplicit

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

◆ CoreImpl() [4/4]

template<bool SigIsNoexcept, class ReturnType , class... P>
absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::CoreImpl ( CoreImpl< SigIsNoexcept, ReturnType, P > &&  other)
inlinenoexcept

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

◆ ~CoreImpl()

template<bool SigIsNoexcept, class ReturnType , class... P>
absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::~CoreImpl ( )
inline

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

Member Function Documentation

◆ Clear()

template<bool SigIsNoexcept, class ReturnType , class... P>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::Clear ( )
inline

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

◆ HasValue()

template<bool SigIsNoexcept, class ReturnType , class... P>
bool absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::HasValue ( ) const
inline

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

◆ Initialize() [1/4]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<int target_type, class QualDecayedTRef , class F , absl::enable_if_t< target_type==0, int > = 0>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::Initialize ( F &&  f)
inline

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

◆ Initialize() [2/4]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<int target_type, class QualDecayedTRef , class F , absl::enable_if_t< target_type==1, int > = 0>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::Initialize ( F &&  f)
inline

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

◆ Initialize() [3/4]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<int target_type, class QualDecayedTRef , class F , absl::enable_if_t< target_type==2, int > = 0>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::Initialize ( F &&  f)
inline

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

◆ Initialize() [4/4]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<int target_type, class QualDecayedTRef , class F , typename = absl::enable_if_t<target_type == 3>>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::Initialize ( F &&  f)
inline

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

◆ InitializeLocalManager() [1/2]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<class T , typename = absl::enable_if_t<std::is_trivially_copyable<T>::value>>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::InitializeLocalManager ( )
inline

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

◆ InitializeLocalManager() [2/2]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<class T , absl::enable_if_t<!std::is_trivially_copyable< T >::value, int > = 0>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::InitializeLocalManager ( )
inline

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

◆ InitializeRemoteManager() [1/2]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<class T , class... Args, typename = absl::enable_if_t<HasTrivialRemoteStorage<T>::value>>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::InitializeRemoteManager ( Args &&...  args)
inline

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

◆ InitializeRemoteManager() [2/2]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<class T , class... Args, absl::enable_if_t<!HasTrivialRemoteStorage< T >::value, int > = 0>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::InitializeRemoteManager ( Args &&...  args)
inline

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

◆ InitializeStorage() [1/2]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<class QualTRef , class... Args, typename = absl::enable_if_t< IsStoredLocally<RemoveCVRef<QualTRef>>::value>>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::InitializeStorage ( Args &&...  args)
inline

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

◆ InitializeStorage() [2/2]

template<bool SigIsNoexcept, class ReturnType , class... P>
template<class QualTRef , class... Args, absl::enable_if_t<!IsStoredLocally< RemoveCVRef< QualTRef >>::value, int > = 0>
void absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::InitializeStorage ( Args &&...  args)
inline

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

◆ operator=()

template<bool SigIsNoexcept, class ReturnType , class... P>
CoreImpl& absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::operator= ( CoreImpl< SigIsNoexcept, ReturnType, P > &&  other)
inlinenoexcept

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

Member Data Documentation

◆ invoker_

template<bool SigIsNoexcept, class ReturnType , class... P>
InvokerType<SigIsNoexcept, ReturnType, P...>* absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::invoker_

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

◆ manager_

template<bool SigIsNoexcept, class ReturnType , class... P>
ManagerType* absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::manager_

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

◆ state_

template<bool SigIsNoexcept, class ReturnType , class... P>
TypeErasedState absl::internal_any_invocable::CoreImpl< SigIsNoexcept, ReturnType, P >::state_

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


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


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