|
|
@ -85,13 +85,13 @@ public: |
|
|
|
bool operator<(FixedHash const& _c) const { return m_data < _c.m_data; } |
|
|
|
|
|
|
|
// The obvious binary operators.
|
|
|
|
FixedHash& operator^=(FixedHash const& _c) { for (auto i = 0; i < N; ++i) m_data[i] ^= _c.m_data[i]; return *this; } |
|
|
|
FixedHash& operator^=(FixedHash const& _c) { for (unsigned i = 0; i < N; ++i) m_data[i] ^= _c.m_data[i]; return *this; } |
|
|
|
FixedHash operator^(FixedHash const& _c) const { return FixedHash(*this) ^= _c; } |
|
|
|
FixedHash& operator|=(FixedHash const& _c) { for (auto i = 0; i < N; ++i) m_data[i] |= _c.m_data[i]; return *this; } |
|
|
|
FixedHash& operator|=(FixedHash const& _c) { for (unsigned i = 0; i < N; ++i) m_data[i] |= _c.m_data[i]; return *this; } |
|
|
|
FixedHash operator|(FixedHash const& _c) const { return FixedHash(*this) |= _c; } |
|
|
|
FixedHash& operator&=(FixedHash const& _c) { for (auto i = 0; i < N; ++i) m_data[i] &= _c.m_data[i]; return *this; } |
|
|
|
FixedHash& operator&=(FixedHash const& _c) { for (unsigned i = 0; i < N; ++i) m_data[i] &= _c.m_data[i]; return *this; } |
|
|
|
FixedHash operator&(FixedHash const& _c) const { return FixedHash(*this) &= _c; } |
|
|
|
FixedHash& operator~() { for (auto i = 0; i < N; ++i) m_data[i] = ~m_data[i]; return *this; } |
|
|
|
FixedHash& operator~() { for (unsigned i = 0; i < N; ++i) m_data[i] = ~m_data[i]; return *this; } |
|
|
|
|
|
|
|
/// @returns true if all bytes in @a _c are set in this object.
|
|
|
|
bool contains(FixedHash const& _c) const { return (*this & _c) == _c; } |
|
|
|