diff options
Diffstat (limited to 'host/include')
-rw-r--r-- | host/include/uhd/types/dict.hpp | 8 | ||||
-rw-r--r-- | host/include/uhd/types/dict.ipp | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/host/include/uhd/types/dict.hpp b/host/include/uhd/types/dict.hpp index b14fc5425..6166140a0 100644 --- a/host/include/uhd/types/dict.hpp +++ b/host/include/uhd/types/dict.hpp @@ -71,6 +71,14 @@ namespace uhd{ bool has_key(const Key &key) const; /*! + * Get a value in the dict or default. + * \param key the key to look for + * \param def use if key not found + * \return the value or default + */ + const Val &get(const Key &key, const Val &def) const; + + /*! * Get a value for the given key if it exists. * If the key is not found throw an error. * \param key the key to look for diff --git a/host/include/uhd/types/dict.ipp b/host/include/uhd/types/dict.ipp index 85071e6fd..4aab5de45 100644 --- a/host/include/uhd/types/dict.ipp +++ b/host/include/uhd/types/dict.ipp @@ -86,6 +86,14 @@ namespace uhd{ } template <typename Key, typename Val> + const Val &dict<Key, Val>::get(const Key &key, const Val &def) const{ + BOOST_FOREACH(const pair_t &p, _map){ + if (p.first == key) return p.second; + } + return def; + } + + template <typename Key, typename Val> const Val &dict<Key, Val>::operator[](const Key &key) const{ BOOST_FOREACH(const pair_t &p, _map){ if (p.first == key) return p.second; |