mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-11-17 01:41:51 +03:00
util: switch from Boost to std::unordered set/map
This commit replaces the ue2::unordered_{set,map} types with their STL
versions, with some new hashing utilities in util/hash.h. The new types
ue2_unordered_set<T> and ue2_unordered_map<Key, T> default to using the
ue2_hasher.
The header util/ue2_containers.h has been removed, and the flat_set/map
containers moved to util/flat_containers.h.
This commit is contained in:
committed by
Matthew Barr
parent
a425bb9b7c
commit
9cf66b6ac9
@@ -221,8 +221,8 @@ public:
|
||||
std::string str() const;
|
||||
#endif
|
||||
|
||||
friend size_t hash_value(const depth &d) {
|
||||
return d.val;
|
||||
size_t hash() const {
|
||||
return val;
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -260,10 +260,6 @@ struct DepthMinMax : totally_ordered<DepthMinMax> {
|
||||
|
||||
};
|
||||
|
||||
inline size_t hash_value(const DepthMinMax &d) {
|
||||
return hash_all(d.min, d.max);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Merge two DepthMinMax values together to produce their union.
|
||||
*/
|
||||
@@ -271,4 +267,22 @@ DepthMinMax unionDepthMinMax(const DepthMinMax &a, const DepthMinMax &b);
|
||||
|
||||
} // namespace ue2
|
||||
|
||||
namespace std {
|
||||
|
||||
template<>
|
||||
struct hash<ue2::depth> {
|
||||
size_t operator()(const ue2::depth &d) const {
|
||||
return d.hash();
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
struct hash<ue2::DepthMinMax> {
|
||||
size_t operator()(const ue2::DepthMinMax &d) const {
|
||||
return hash_all(d.min, d.max);
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif // DEPTH_H
|
||||
|
||||
Reference in New Issue
Block a user