From baad5d789fde546ed5e3fccd865e49ba15b98145 Mon Sep 17 00:00:00 2001 From: Brent Stapleton Date: Thu, 29 Mar 2018 18:54:37 -0700 Subject: lib: adding == and != for uhd::dict --- host/include/uhd/types/dict.hpp | 14 ++++++++++++++ host/include/uhd/types/dict.ipp | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+) (limited to 'host/include') diff --git a/host/include/uhd/types/dict.hpp b/host/include/uhd/types/dict.hpp index b8537a3c2..51594e17b 100644 --- a/host/include/uhd/types/dict.hpp +++ b/host/include/uhd/types/dict.hpp @@ -99,6 +99,20 @@ namespace uhd{ */ Val &operator[](const Key &key); + /*! + * Equals operator for the dict type + * \param other the dict being compared to this + * \return whether or not the two dict's are equal + */ + bool operator==(const dict &other) const; + + /*! + * Not equal operator for the dict type + * \param other the dict being compared to this + * \return whether or not the two dict's are not equal + */ + bool operator!=(const dict &other) const; + /*! * Pop an item out of the dictionary. * \param key the item key diff --git a/host/include/uhd/types/dict.ipp b/host/include/uhd/types/dict.ipp index 26de1f08e..9ff64ee2b 100644 --- a/host/include/uhd/types/dict.ipp +++ b/host/include/uhd/types/dict.ipp @@ -112,6 +112,24 @@ namespace uhd{ return _map.back().second; } + template + bool dict::operator==(const dict &other) const{ + if (this->size() != other.size()){ + return false; + } + for(auto &p : _map){ + if (not (other.has_key(p.first) and other.get(p.first) == p.second)){ + return false; + } + } + return true; + } + + template + bool dict::operator!=(const dict &other) const{ + return not (*this == other); + } + template Val dict::pop(const Key &key){ typename std::list::iterator it; -- cgit v1.2.3