diff options
Diffstat (limited to 'Swiften/Base/Algorithm.h')
-rw-r--r-- | Swiften/Base/Algorithm.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Swiften/Base/Algorithm.h b/Swiften/Base/Algorithm.h index ea9530b..4d7f1de 100644 --- a/Swiften/Base/Algorithm.h +++ b/Swiften/Base/Algorithm.h @@ -93,6 +93,17 @@ namespace Swift { target.insert(target.end(), source.begin(), source.end()); } + template<typename A, typename B, typename C, typename D> + B get(const std::map<A, B, C, D>& map, const A& key, const B& defaultValue) { + typename std::map<A, B, C, D>::const_iterator i = map.find(key); + if (i != map.end()) { + return i->second; + } + else { + return defaultValue; + } + } + /* * Functors */ |