v8 13.6.233 (node 24.1.0)
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< 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< 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< 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< 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 76 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 97 of file member.h.

◆ PointeeType

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

Definition at line 81 of file member.h.

◆ RawStorage

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

Definition at line 82 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 85 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 86 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 87 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 91 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 98 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 100 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 102 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 107 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 111 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< IsDecayedSameV< T, U > > * = nullptr>
V8_INLINE BasicMember ( const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > & other)
inline

Definition at line 120 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< IsStrictlyBaseOfV< T, U > > * = nullptr>
V8_INLINE BasicMember ( const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy, StorageType > & other)
inline

Definition at line 128 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

Definition at line 134 of file member.h.

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

Definition at line 145 of file member.h.

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

Definition at line 155 of file member.h.

◆ 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 167 of file member.h.

Member Function Documentation

◆ Clear()

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

Definition at line 272 of file member.h.

◆ 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 280 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 255 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 256 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->()

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

Definition at line 257 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 194 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 205 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

Definition at line 173 of file member.h.

◆ 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 182 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 223 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 241 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 237 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 230 of file member.h.

◆ Release()

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

Definition at line 274 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 248 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 263 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 336 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 330 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 333 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 331 of file member.h.


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