Lines Matching refs:S
38 PooledStringPtr intern(std::string S);
62 PooledStringPtr(const PooledStringPtr &Other) : S(Other.S) {
63 if (S)
64 ++S->second;
68 if (S) {
69 assert(S->second && "Releasing PooledStringPtr with zero ref count");
70 --S->second;
72 S = Other.S;
73 if (S)
74 ++S->second;
78 PooledStringPtr(PooledStringPtr &&Other) : S(nullptr) {
79 std::swap(S, Other.S);
83 if (S) {
84 assert(S->second && "Releasing PooledStringPtr with zero ref count");
85 --S->second;
87 S = nullptr;
88 std::swap(S, Other.S);
93 if (S) {
94 assert(S->second && "Releasing PooledStringPtr with zero ref count");
95 --S->second;
99 explicit operator bool() const { return S; }
101 const std::string &operator*() const { return S->first; }
105 return LHS.S == RHS.S;
115 return LHS.S < RHS.S;
122 PooledStringPtr(StringPool::PoolMapEntry *S) : S(S) {
123 if (S)
124 ++S->second;
127 PoolEntryPtr S = nullptr;
137 inline PooledStringPtr StringPool::intern(std::string S) {
141 std::tie(I, Added) = Pool.try_emplace(std::move(S), 0);
166 return hash<__orc_rt::PooledStringPtr::PoolEntryPtr>()(A.S);