v8  9.4.146 (node 16.13.0)
V8 is Google's open source JavaScript engine
BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy > Class Template Reference

#include <member.h>

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

Public Types

using PointeeType = T
 
using AtomicInitializerTag = MemberBase::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 , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
 BasicMember (const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy > &other)
 
 BasicMember (BasicMember &&other) noexcept
 
template<typename U , typename OtherBarrierPolicy , typename OtherWeaknessTag , typename OtherCheckingPolicy , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
 BasicMember (BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy > &&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 , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
BasicMemberoperator= (const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy > &other)
 
BasicMemberoperator= (BasicMember &&other) noexcept
 
template<typename U , typename OtherWeaknessTag , typename OtherBarrierPolicy , typename OtherCheckingPolicy , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
BasicMemberoperator= (BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy > &&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 > &other)
 
 operator bool () const
 
 operator T* () const
 
T * operator-> () const
 
T & operator* () const
 
 V8_CLANG_NO_SANITIZE ("cfi-unrelated-cast") T *Get() const
 
void Clear ()
 
T * Release ()
 
const T ** GetSlotForTesting () const
 

Friends

class cppgc::Visitor
 
template<typename U >
struct cppgc::TraceTrait
 

Detailed Description

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

Definition at line 55 of file member.h.

Member Typedef Documentation

◆ AtomicInitializerTag

◆ PointeeType

using PointeeType = T

Definition at line 57 of file member.h.

Constructor & Destructor Documentation

◆ BasicMember() [1/14]

constexpr BasicMember ( )
constexprdefault

◆ BasicMember() [2/14]

constexpr BasicMember ( std::nullptr_t  )
inlineconstexpr

Definition at line 60 of file member.h.

◆ BasicMember() [3/14]

Definition at line 61 of file member.h.

◆ BasicMember() [4/14]

BasicMember ( T *  raw)
inline

Definition at line 62 of file member.h.

◆ BasicMember() [5/14]

BasicMember ( T &  raw)
inline

Definition at line 66 of file member.h.

◆ BasicMember() [6/14]

BasicMember ( std::nullptr_t  ,
AtomicInitializerTag  atomic 
)
inline

Definition at line 71 of file member.h.

◆ BasicMember() [7/14]

BasicMember ( SentinelPointer  s,
AtomicInitializerTag  atomic 
)
inline

Definition at line 73 of file member.h.

◆ BasicMember() [8/14]

BasicMember ( T *  raw,
AtomicInitializerTag  atomic 
)
inline

Definition at line 75 of file member.h.

◆ BasicMember() [9/14]

BasicMember ( T &  raw,
AtomicInitializerTag  atomic 
)
inline

Definition at line 79 of file member.h.

◆ BasicMember() [10/14]

BasicMember ( const BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy > &  other)
inline

Definition at line 82 of file member.h.

◆ BasicMember() [11/14]

BasicMember ( const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy > &  other)
inline

Definition at line 87 of file member.h.

◆ BasicMember() [12/14]

BasicMember ( BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy > &&  other)
inlinenoexcept

Definition at line 92 of file member.h.

◆ BasicMember() [13/14]

BasicMember ( BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy > &&  other)
inlinenoexcept

Definition at line 99 of file member.h.

◆ BasicMember() [14/14]

BasicMember ( const BasicPersistent< U, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy > &  p)
inline

Definition at line 109 of file member.h.

Member Function Documentation

◆ Clear()

◆ GetSlotForTesting()

const T** GetSlotForTesting ( ) const
inline

Definition at line 203 of file member.h.

References MemberBase::GetRawSlot().

◆ operator bool()

operator bool ( ) const
inlineexplicit

Definition at line 178 of file member.h.

◆ operator T*()

operator T* ( ) const
inline

Definition at line 179 of file member.h.

◆ operator*()

T& operator* ( ) const
inline

Definition at line 181 of file member.h.

◆ operator->()

T* operator-> ( ) const
inline

Definition at line 180 of file member.h.

◆ operator=() [1/8]

BasicMember& operator= ( BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy > &&  other)
inlinenoexcept

Definition at line 128 of file member.h.

◆ operator=() [2/8]

BasicMember& operator= ( BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy > &&  other)
inlinenoexcept

Definition at line 137 of file member.h.

◆ operator=() [3/8]

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

Definition at line 115 of file member.h.

◆ operator=() [4/8]

BasicMember& operator= ( const BasicMember< U, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy > &  other)
inline

Definition at line 122 of file member.h.

◆ operator=() [5/8]

BasicMember& operator= ( const BasicPersistent< U, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy > &  other)
inline

Definition at line 148 of file member.h.

◆ operator=() [6/8]

BasicMember& operator= ( SentinelPointer  s)
inline

Definition at line 164 of file member.h.

References MemberBase::SetRawAtomic().

◆ operator=() [7/8]

BasicMember& operator= ( std::nullptr_t  )
inline

◆ operator=() [8/8]

BasicMember& operator= ( T *  other)
inline

Definition at line 154 of file member.h.

References MemberBase::SetRawAtomic().

◆ Release()

T* Release ( )
inline

◆ Swap()

void Swap ( BasicMember< T, OtherWeaknessTag, OtherBarrierPolicy, OtherCheckingPolicy > &  other)
inline

Definition at line 171 of file member.h.

◆ V8_CLANG_NO_SANITIZE()

V8_CLANG_NO_SANITIZE ( "cfi-unrelated-cast"  ) const
inline

Definition at line 186 of file member.h.

References MemberBase::GetRaw().

Friends And Related Function Documentation

◆ cppgc::TraceTrait

friend struct cppgc::TraceTrait
friend

Definition at line 225 of file member.h.

◆ cppgc::Visitor

friend class cppgc::Visitor
friend

Definition at line 223 of file member.h.


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