Lines Matching refs:Entry
35 struct Entry {
37 Entry(Interner<T>* in, uint64_t i, U... args)
40 bool operator<(const Entry& other) const { return data < other.data; }
41 bool operator==(const Entry& other) const { return data == other.data; }
44 size_t operator()(const Entry& e) const noexcept {
59 Interned(Entry* entry) : entry_(entry) {}
95 Interner::Entry* entry_;
100 Entry item(this, next_id, std::forward<U...>(args...));
110 Entry& entry = const_cast<Entry&>(*it);
111 entry.ref_count++;
112 return Interned(&entry);
120 void Return(Entry* entry) {
121 if (--entry->ref_count == 0)
122 entries_.erase(*entry);
125 std::unordered_set<Entry, typename Entry::Hash> entries_;