diff options
author | Brent Stapleton <brent.stapleton@ettus.com> | 2018-03-29 18:54:37 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2018-04-02 13:38:45 -0700 |
commit | baad5d789fde546ed5e3fccd865e49ba15b98145 (patch) | |
tree | 21601cf839c87fe1f278c766042f21b05ccdc71b /host/include | |
parent | 3f0e7d405f128e9faeea03cb6f97f25423983e63 (diff) | |
download | uhd-baad5d789fde546ed5e3fccd865e49ba15b98145.tar.gz uhd-baad5d789fde546ed5e3fccd865e49ba15b98145.tar.bz2 uhd-baad5d789fde546ed5e3fccd865e49ba15b98145.zip |
lib: adding == and != for uhd::dict
Diffstat (limited to 'host/include')
-rw-r--r-- | host/include/uhd/types/dict.hpp | 14 | ||||
-rw-r--r-- | host/include/uhd/types/dict.ipp | 18 |
2 files changed, 32 insertions, 0 deletions
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 @@ -100,6 +100,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<Key, Val> &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<Key, Val> &other) const; + + /*! * Pop an item out of the dictionary. * \param key the item key * \return the value of the item 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 @@ -113,6 +113,24 @@ namespace uhd{ } template <typename Key, typename Val> + bool dict<Key, Val>::operator==(const dict<Key, Val> &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 <typename Key, typename Val> + bool dict<Key, Val>::operator!=(const dict<Key, Val> &other) const{ + return not (*this == other); + } + + template <typename Key, typename Val> Val dict<Key, Val>::pop(const Key &key){ typename std::list<pair_t>::iterator it; for (it = _map.begin(); it != _map.end(); it++){ |