operand: Implement operand hashing and use hashed set for declarations

Instead of manually searching each element in the declarations vector,
use an unordered_set to emplace new declarations avoiding repetition.
This commit is contained in:
ReinUsesLisp 2019-06-08 05:23:15 -03:00
parent f7c4b07a7e
commit 1e665afa36
10 changed files with 66 additions and 13 deletions

View file

@ -35,4 +35,8 @@ bool LiteralNumber::operator==(const Operand& other) const {
return false;
}
std::size_t LiteralNumber::Hash() const {
return static_cast<std::size_t>(raw) ^ Operand::Hash();
}
} // namespace Sirit