From c5da9a74522967446d796dce5cf9d30ff7b8cec3 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 18 Aug 2018 11:07:42 +0200 Subject: Add comparison operators --- chilbert/BigBitVec.hpp | 15 +++++++++++++++ chilbert/FixBitVec.hpp | 2 ++ 2 files changed, 17 insertions(+) (limited to 'chilbert') diff --git a/chilbert/BigBitVec.hpp b/chilbert/BigBitVec.hpp index 30b8f82..dcc2c99 100644 --- a/chilbert/BigBitVec.hpp +++ b/chilbert/BigBitVec.hpp @@ -108,6 +108,21 @@ public: bool operator!=(const CBigBitVec& vec) const { return !(*this == vec); } + bool operator<(const CBigBitVec& vec) const + { + assert(size() == vec.size()); + + for (size_t ri = 0; ri < m_iRacks; ++ri) { + size_t i = m_iRacks - ri - 1; + if (m_pcRacks[i] < vec.m_pcRacks[i]) { + return true; + } else if (m_pcRacks[i] > vec.m_pcRacks[i]) { + return false; + } + } + return false; + } + /// Non-resizing assignment CBigBitVec& operator=(const CBigBitVec& vec) { diff --git a/chilbert/FixBitVec.hpp b/chilbert/FixBitVec.hpp index 05dae1f..d098956 100644 --- a/chilbert/FixBitVec.hpp +++ b/chilbert/FixBitVec.hpp @@ -115,6 +115,8 @@ public: return m_rack != vec.m_rack; } + bool operator<(const CFixBitVec& vec) const { return m_rack < vec.m_rack; } + CFixBitVec& operator=(const FBV_UINT i) { m_rack = i; -- cgit v1.2.1