+public:
+ ~TranspositionTable() { free(mem); }
+ void new_search() { ++generation; }
+
+ const TTEntry* probe(const Key key) const;
+ TTEntry* first_entry(const Key key) const;
+ void refresh(const TTEntry* tte) const;
+ void resize(uint64_t mbSize);
+ void clear();
+ void store(const Key key, Value v, Bound type, Depth d, Move m, Value statV);
+
+private:
+ uint32_t hashMask;
+ TTEntry* table;
+ void* mem;
+ uint8_t generation; // Size must be not bigger than TTEntry::generation8