//===----------------------------------------------------------------------===// // DuckDB // // duckdb/common/reference_map.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/common/common.hpp" #include "duckdb/common/unordered_map.hpp" #include "duckdb/common/unordered_set.hpp" namespace duckdb { class Expression; template struct ReferenceHashFunction { uint64_t operator()(const reference &ref) const { return std::hash()((void *)&ref.get()); } }; template struct ReferenceEquality { bool operator()(const reference &a, const reference &b) const { return &a.get() == &b.get(); } }; template using reference_map_t = unordered_map, TGT, ReferenceHashFunction, ReferenceEquality>; template using reference_set_t = unordered_set, ReferenceHashFunction, ReferenceEquality>; } // namespace duckdb