5 #ifndef INCLUDE_CPPGC_INTERNAL_POINTER_POLICIES_H_
6 #define INCLUDE_CPPGC_INTERNAL_POINTER_POLICIES_H_
11 #include "cppgc/source-location.h"
20 class StrongMemberTag;
22 class UntracedMemberTag;
65 : location_(location) {}
87 #if CPPGC_SUPPORTS_OBJECT_NAMES
94 using IsStrongPersistent = std::true_type;
100 using IsStrongPersistent = std::false_type;
106 template <
typename T,
typename WeaknessPolicy,
107 typename LocationPolicy = DefaultLocationPolicy,
108 typename CheckingPolicy = DefaultCheckingPolicy>
109 class BasicPersistent;
110 template <
typename T,
typename WeaknessTag,
typename WriteBarrierPolicy,
111 typename CheckingPolicy = DefaultCheckingPolicy>
117 template <
typename T>
119 static constexpr intptr_t kSentinelValue = -1;
120 return reinterpret_cast<T*>(kSentinelValue);