Loading...
Searching...
No Matches
Public Types | Public Member Functions | Friends | List of all members
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType > Class Template Reference

#include <member.h>

Inheritance diagram for cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >:
[legend]
Collaboration diagram for cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >:
[legend]

Public Types

using PointeeType = T
 
using RawStorage = typename Base::RawStorage
 
using AtomicInitializerTag = typename Base::AtomicInitializerTag
 

Public Member Functions

constexpr BasicMember ()=default
 
constexpr BasicMember (std::nullptr_t)
 
 BasicMember (SentinelPointer s)
 
 BasicMember (T *raw)
 
 BasicMember (T &raw)
 
 BasicMember (std::nullptr_t, AtomicInitializerTag atomic)
 
 BasicMember (SentinelPointer s, AtomicInitializerTag atomic)
 
 BasicMember (T *raw, AtomicInitializerTag atomic)
 
 BasicMember (T &raw, AtomicInitializerTag atomic)
 
 BasicMember (const BasicMember &other)
 
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , std::enable_if_t< internal::IsDecayedSameV< T, U > > * = nullptr>
 BasicMember (const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &other)
 
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , std::enable_if_t< internal::IsStrictlyBaseOfV< T, U > > * = nullptr>
 BasicMember (const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &other)
 
 BasicMember (BasicMember &&other) noexcept
 
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , std::enable_if_t< internal::IsDecayedSameV< T, U > > * = nullptr>
 BasicMember (BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &&other) noexcept
 
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , std::enable_if_t< internal::IsStrictlyBaseOfV< T, U > > * = nullptr>
 BasicMember (BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &&other) noexcept
 
template<typename U , typename PersistentWeaknessPolicy , typename PersistentLocationPolicy , typename PersistentCheckingPolicy , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
 BasicMember (const BasicPersistent< U, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy > &p)
 
BasicMemberoperator= (const BasicMember &other)
 
template<typename U , typename OtherWeaknessTag , typename OtherBarrierPolicy , typename OtherCheckingPolicy >
BasicMemberoperator= (const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &other)
 
BasicMemberoperator= (BasicMember &&other) noexcept
 
template<typename U , typename OtherWeaknessTag , typename OtherBarrierPolicy , typename OtherCheckingPolicy >
BasicMemberoperator= (BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &&other) noexcept
 
template<typename U , typename PersistentWeaknessPolicy , typename PersistentLocationPolicy , typename PersistentCheckingPolicy , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
BasicMemberoperator= (const BasicPersistent< U, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy > &other)
 
BasicMemberoperator= (T *other)
 
BasicMemberoperator= (std::nullptr_t)
 
BasicMemberoperator= (SentinelPointer s)
 
template<typename OtherWeaknessTag , typename OtherBarrierPolicy , typename OtherCheckingPolicy >
void Swap (BasicMember< T, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &other)
 
 operator bool () const
 
 operator T* () const
 
T * operator-> () const
 
T & operator* () const
 
T * Get () const
 
void Clear ()
 
T * Release ()
 
const T ** GetSlotForTesting () const
 
RawStorage GetRawStorage () const
 

Friends

class cppgc::subtle::HeapConsistency
 
class cppgc::Visitor
 
template<typename U >
struct cppgc::TraceTrait
 
template<typename T1 , typename WeaknessTag1 , typename WriteBarrierPolicy1 , typename CheckingPolicy1 , typename StorageType1 >
class BasicMember
 

Member Typedef Documentation

◆ AtomicInitializerTag

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
using cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::AtomicInitializerTag = typename Base::AtomicInitializerTag

◆ PointeeType

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
using cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::PointeeType = T

◆ RawStorage

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
using cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::RawStorage = typename Base::RawStorage

Constructor & Destructor Documentation

◆ BasicMember() [1/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
constexpr cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( )
inlineconstexprdefault

◆ BasicMember() [2/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
constexpr cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( std::nullptr_t  )
inlineconstexpr

◆ BasicMember() [3/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( SentinelPointer  s)
inline

◆ BasicMember() [4/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( T *  raw)
inline

◆ BasicMember() [5/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( T &  raw)
inline

◆ BasicMember() [6/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( std::nullptr_t  ,
AtomicInitializerTag  atomic 
)
inline

◆ BasicMember() [7/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( SentinelPointer  s,
AtomicInitializerTag  atomic 
)
inline

◆ BasicMember() [8/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( T *  raw,
AtomicInitializerTag  atomic 
)
inline

◆ BasicMember() [9/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( T &  raw,
AtomicInitializerTag  atomic 
)
inline

◆ BasicMember() [10/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( const BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType > &  other)
inline

◆ BasicMember() [11/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , std::enable_if_t< internal::IsDecayedSameV< T, U > > * = nullptr>
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &  other)
inline

◆ BasicMember() [12/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , std::enable_if_t< internal::IsStrictlyBaseOfV< T, U > > * = nullptr>
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &  other)
inline

◆ BasicMember() [13/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType > &&  other)
inlinenoexcept
Here is the call graph for this function:

◆ BasicMember() [14/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , std::enable_if_t< internal::IsDecayedSameV< T, U > > * = nullptr>
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &&  other)
inlinenoexcept
Here is the call graph for this function:

◆ BasicMember() [15/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , std::enable_if_t< internal::IsStrictlyBaseOfV< T, U > > * = nullptr>
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &&  other)
inlinenoexcept
Here is the call graph for this function:

◆ BasicMember() [16/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename U , typename PersistentWeaknessPolicy , typename PersistentLocationPolicy , typename PersistentCheckingPolicy , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::BasicMember ( const BasicPersistent< U, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy > &  p)
inline

Member Function Documentation

◆ Clear()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
void cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::Clear ( )
inline
Here is the caller graph for this function:

◆ Get()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
T * cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::Get ( ) const
inline
Here is the caller graph for this function:

◆ GetRawStorage()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
RawStorage cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::GetRawStorage ( ) const
inline
Here is the caller graph for this function:

◆ GetSlotForTesting()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
const T ** cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::GetSlotForTesting ( ) const
inline

◆ operator bool()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator bool ( ) const
inlineexplicit

◆ operator T*()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator T* ( ) const
inline

◆ operator*()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
T & cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator* ( ) const
inline

◆ operator->()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
T * cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator-> ( ) const
inline

◆ operator=() [1/8]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
BasicMember & cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator= ( BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType > &&  other)
inlinenoexcept

◆ operator=() [2/8]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename U , typename OtherWeaknessTag , typename OtherBarrierPolicy , typename OtherCheckingPolicy >
BasicMember & cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator= ( BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &&  other)
inlinenoexcept

◆ operator=() [3/8]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
BasicMember & cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator= ( const BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType > &  other)
inline
Here is the call graph for this function:

◆ operator=() [4/8]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename U , typename OtherWeaknessTag , typename OtherBarrierPolicy , typename OtherCheckingPolicy >
BasicMember & cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator= ( const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &  other)
inline

◆ operator=() [5/8]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename U , typename PersistentWeaknessPolicy , typename PersistentLocationPolicy , typename PersistentCheckingPolicy , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
BasicMember & cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator= ( const BasicPersistent< U, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy > &  other)
inline

◆ operator=() [6/8]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
BasicMember & cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator= ( SentinelPointer  s)
inline

◆ operator=() [7/8]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
BasicMember & cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator= ( std::nullptr_t  )
inline

◆ operator=() [8/8]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
BasicMember & cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::operator= ( T *  other)
inline

◆ Release()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
T * cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::Release ( )
inline

◆ Swap()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename OtherWeaknessTag , typename OtherBarrierPolicy , typename OtherCheckingPolicy >
void cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >::Swap ( BasicMember< T, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &  other)
inline

Friends And Related Function Documentation

◆ BasicMember

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename T1 , typename WeaknessTag1 , typename WriteBarrierPolicy1 , typename CheckingPolicy1 , typename StorageType1 >
friend class BasicMember
friend

◆ cppgc::subtle::HeapConsistency

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
friend class cppgc::subtle::HeapConsistency
friend

◆ cppgc::TraceTrait

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
template<typename U >
friend struct cppgc::TraceTrait
friend

◆ cppgc::Visitor

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
friend class cppgc::Visitor
friend

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