#include "charreach.h"
#include "compare.h"
+#include "hash_dynamic_bitset.h"
#include <algorithm>
#include <cstring>
return nocase.any();
}
+size_t ue2_literal::hash() const {
+ return hash_all(s, hash_dynamic_bitset()(nocase));
+}
+
void make_nocase(ue2_literal *lit) {
ue2_literal rv;
nocase.swap(other.nocase);
}
+ size_t hash() const;
+
private:
friend const_iterator;
std::string s;
template<>
struct hash<ue2::ue2_literal> {
size_t operator()(const ue2::ue2_literal &lit) const {
- return ue2::ue2_hasher()(lit);
+ return lit.hash();
}
};