v8 12.4.254 (node 22.4.1)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType > Class Template Reference

#include <member.h>

Inheritance diagram for BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >:
Collaboration diagram for BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >:

Public Types

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

Public Member Functions

V8_INLINE constexpr BasicMember ()=default
 
V8_INLINE constexpr BasicMember (std::nullptr_t)
 
V8_INLINE BasicMember (SentinelPointer s)
 
V8_INLINE BasicMember (T *raw)
 
V8_INLINE BasicMember (T &raw)
 
V8_INLINE BasicMember (std::nullptr_t, AtomicInitializerTag atomic)
 
V8_INLINE BasicMember (SentinelPointer s, AtomicInitializerTag atomic)
 
V8_INLINE BasicMember (T *raw, AtomicInitializerTag atomic)
 
V8_INLINE BasicMember (T &raw, AtomicInitializerTag atomic)
 
V8_INLINE BasicMember (const BasicMember &other)
 
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , std::enable_if_t< internal::IsDecayedSameV< T, U > > * = nullptr>
V8_INLINE 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>
V8_INLINE BasicMember (const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &other)
 
V8_INLINE BasicMember (BasicMember &&other) noexcept
 
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , std::enable_if_t< internal::IsDecayedSameV< T, U > > * = nullptr>
V8_INLINE 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>
V8_INLINE 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>>
V8_INLINE BasicMember (const BasicPersistent< U, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy > &p)
 
V8_INLINE BasicMemberoperator= (const BasicMember &other)
 
template<typename U , typename OtherWeaknessTag , typename OtherBarrierPolicy , typename OtherCheckingPolicy >
V8_INLINE BasicMemberoperator= (const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &other)
 
V8_INLINE BasicMemberoperator= (BasicMember &&other) noexcept
 
template<typename U , typename OtherWeaknessTag , typename OtherBarrierPolicy , typename OtherCheckingPolicy >
V8_INLINE 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>>
V8_INLINE BasicMemberoperator= (const BasicPersistent< U, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy > &other)
 
V8_INLINE BasicMemberoperator= (T *other)
 
V8_INLINE BasicMemberoperator= (std::nullptr_t)
 
V8_INLINE BasicMemberoperator= (SentinelPointer s)
 
template<typename OtherWeaknessTag , typename OtherBarrierPolicy , typename OtherCheckingPolicy >
V8_INLINE void Swap (BasicMember< T, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &other)
 
V8_INLINE operator bool () const
 
V8_INLINE operator T* () const
 
V8_INLINE T * operator-> () const
 
V8_INLINE T & operator* () const
 
V8_INLINE V8_CLANG_NO_SANITIZE ("cfi-unrelated-cast") T *Get() const
 
V8_INLINE void Clear ()
 
V8_INLINE T * Release ()
 
V8_INLINE const T ** GetSlotForTesting () const
 
V8_INLINE 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
 

Detailed Description

template<typename T, typename WeaknessTag, typename WriteBarrierPolicy, typename CheckingPolicy, typename StorageType>
class cppgc::internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType >

Definition at line 77 of file member.h.

Member Typedef Documentation

◆ AtomicInitializerTag

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

Definition at line 98 of file member.h.

◆ PointeeType

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
using PointeeType = T

Definition at line 82 of file member.h.

◆ RawStorage

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

Definition at line 83 of file member.h.

Constructor & Destructor Documentation

◆ BasicMember() [1/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE constexpr BasicMember ( )
constexprdefault

◆ BasicMember() [2/16]

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

Definition at line 86 of file member.h.

◆ BasicMember() [3/16]

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

Definition at line 87 of file member.h.

◆ BasicMember() [4/16]

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

Definition at line 88 of file member.h.

◆ BasicMember() [5/16]

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

Definition at line 92 of file member.h.

◆ BasicMember() [6/16]

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

Definition at line 99 of file member.h.

◆ BasicMember() [7/16]

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

Definition at line 101 of file member.h.

◆ BasicMember() [8/16]

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

Definition at line 103 of file member.h.

◆ BasicMember() [9/16]

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

Definition at line 108 of file member.h.

◆ BasicMember() [10/16]

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

Definition at line 112 of file member.h.

◆ 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>
V8_INLINE BasicMember ( const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &  other)
inline

Definition at line 121 of file member.h.

◆ 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>
V8_INLINE BasicMember ( const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &  other)
inline

Definition at line 129 of file member.h.

◆ BasicMember() [13/16]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE BasicMember ( BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType > &&  other)
inlinenoexcept

◆ 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>
V8_INLINE BasicMember ( BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &&  other)
inlinenoexcept

◆ 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>
V8_INLINE BasicMember ( BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > &&  other)
inlinenoexcept

◆ 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>>
V8_INLINE BasicMember ( const BasicPersistent< U, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy > &  p)
inline

Definition at line 168 of file member.h.

Member Function Documentation

◆ Clear()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE void Clear ( )
inline

◆ GetRawStorage()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE RawStorage GetRawStorage ( ) const
inline

◆ GetSlotForTesting()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE const T ** GetSlotForTesting ( ) const
inline

Definition at line 283 of file member.h.

◆ operator bool()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE operator bool ( ) const
inlineexplicit

Definition at line 256 of file member.h.

◆ operator T*()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE operator T* ( ) const
inline

Definition at line 257 of file member.h.

◆ operator*()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE T & operator* ( ) const
inline

Definition at line 259 of file member.h.

◆ operator->()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE T * operator-> ( ) const
inline

Definition at line 258 of file member.h.

◆ operator=() [1/8]

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

Definition at line 195 of file member.h.

◆ operator=() [2/8]

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

Definition at line 206 of file member.h.

◆ operator=() [3/8]

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE BasicMember & operator= ( const BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType > &  other)
inline

◆ operator=() [4/8]

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

Definition at line 183 of file member.h.

◆ 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>>
V8_INLINE BasicMember & operator= ( const BasicPersistent< U, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy > &  other)
inline

Definition at line 224 of file member.h.

◆ operator=() [6/8]

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

Definition at line 242 of file member.h.

◆ operator=() [7/8]

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

Definition at line 238 of file member.h.

◆ operator=() [8/8]

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

Definition at line 231 of file member.h.

◆ Release()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE T * Release ( )
inline

Definition at line 277 of file member.h.

◆ Swap()

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

Definition at line 249 of file member.h.

◆ V8_CLANG_NO_SANITIZE()

template<typename T , typename WeaknessTag , typename WriteBarrierPolicy , typename CheckingPolicy , typename StorageType >
V8_INLINE V8_CLANG_NO_SANITIZE ( "cfi-unrelated-cast"  ) const
inline

Definition at line 264 of file member.h.

Friends And Related Symbol 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

Definition at line 331 of file member.h.

◆ cppgc::subtle::HeapConsistency

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

Definition at line 325 of file member.h.

◆ cppgc::TraceTrait

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

Definition at line 328 of file member.h.

◆ cppgc::Visitor

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

Definition at line 326 of file member.h.


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