diff options
Diffstat (limited to 'deps/v8/include/cppgc/persistent.h')
-rw-r--r-- | deps/v8/include/cppgc/persistent.h | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/deps/v8/include/cppgc/persistent.h b/deps/v8/include/cppgc/persistent.h index 3a66ccc086..709f3fd6ab 100644 --- a/deps/v8/include/cppgc/persistent.h +++ b/deps/v8/include/cppgc/persistent.h @@ -114,11 +114,12 @@ class BasicPersistent final : public PersistentBase, // Constructor from member. template <typename U, typename MemberBarrierPolicy, typename MemberWeaknessTag, typename MemberCheckingPolicy, + typename MemberStorageType, typename = std::enable_if_t<std::is_base_of<T, U>::value>> - BasicPersistent( - const internal::BasicMember<U, MemberBarrierPolicy, MemberWeaknessTag, - MemberCheckingPolicy>& member, - const SourceLocation& loc = SourceLocation::Current()) + BasicPersistent(const internal::BasicMember< + U, MemberBarrierPolicy, MemberWeaknessTag, + MemberCheckingPolicy, MemberStorageType>& member, + const SourceLocation& loc = SourceLocation::Current()) : BasicPersistent(member.Get(), loc) {} ~BasicPersistent() { Clear(); } @@ -154,10 +155,12 @@ class BasicPersistent final : public PersistentBase, // Assignment from member. template <typename U, typename MemberBarrierPolicy, typename MemberWeaknessTag, typename MemberCheckingPolicy, + typename MemberStorageType, typename = std::enable_if_t<std::is_base_of<T, U>::value>> BasicPersistent& operator=( const internal::BasicMember<U, MemberBarrierPolicy, MemberWeaknessTag, - MemberCheckingPolicy>& member) { + MemberCheckingPolicy, MemberStorageType>& + member) { return operator=(member.Get()); } @@ -286,36 +289,39 @@ bool operator!=(const BasicPersistent<T1, WeaknessPolicy1, LocationPolicy1, template <typename T1, typename PersistentWeaknessPolicy, typename PersistentLocationPolicy, typename PersistentCheckingPolicy, typename T2, typename MemberWriteBarrierPolicy, - typename MemberWeaknessTag, typename MemberCheckingPolicy> + typename MemberWeaknessTag, typename MemberCheckingPolicy, + typename MemberStorageType> bool operator==( const BasicPersistent<T1, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy>& p, const BasicMember<T2, MemberWeaknessTag, MemberWriteBarrierPolicy, - MemberCheckingPolicy>& m) { + MemberCheckingPolicy, MemberStorageType>& m) { return p.Get() == m.Get(); } template <typename T1, typename PersistentWeaknessPolicy, typename PersistentLocationPolicy, typename PersistentCheckingPolicy, typename T2, typename MemberWriteBarrierPolicy, - typename MemberWeaknessTag, typename MemberCheckingPolicy> + typename MemberWeaknessTag, typename MemberCheckingPolicy, + typename MemberStorageType> bool operator!=( const BasicPersistent<T1, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy>& p, const BasicMember<T2, MemberWeaknessTag, MemberWriteBarrierPolicy, - MemberCheckingPolicy>& m) { + MemberCheckingPolicy, MemberStorageType>& m) { return !(p == m); } template <typename T1, typename MemberWriteBarrierPolicy, typename MemberWeaknessTag, typename MemberCheckingPolicy, - typename T2, typename PersistentWeaknessPolicy, - typename PersistentLocationPolicy, typename PersistentCheckingPolicy> + typename MemberStorageType, typename T2, + typename PersistentWeaknessPolicy, typename PersistentLocationPolicy, + typename PersistentCheckingPolicy> bool operator==( const BasicMember<T2, MemberWeaknessTag, MemberWriteBarrierPolicy, - MemberCheckingPolicy>& m, + MemberCheckingPolicy, MemberStorageType>& m, const BasicPersistent<T1, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy>& p) { @@ -324,11 +330,12 @@ bool operator==( template <typename T1, typename MemberWriteBarrierPolicy, typename MemberWeaknessTag, typename MemberCheckingPolicy, - typename T2, typename PersistentWeaknessPolicy, - typename PersistentLocationPolicy, typename PersistentCheckingPolicy> + typename MemberStorageType, typename T2, + typename PersistentWeaknessPolicy, typename PersistentLocationPolicy, + typename PersistentCheckingPolicy> bool operator!=( const BasicMember<T2, MemberWeaknessTag, MemberWriteBarrierPolicy, - MemberCheckingPolicy>& m, + MemberCheckingPolicy, MemberStorageType>& m, const BasicPersistent<T1, PersistentWeaknessPolicy, PersistentLocationPolicy, PersistentCheckingPolicy>& p) { |