Add a version of get_item that dynamic_casts the result
authorMikko Rasa <tdb@tdb.fi>
Fri, 24 May 2019 16:58:39 +0000 (19:58 +0300)
committerMikko Rasa <tdb@tdb.fi>
Fri, 24 May 2019 16:58:39 +0000 (19:58 +0300)
source/core/maputils.h

index 2495a1e29b41854e62850324d80fa358ffe2e152..66b4e3baf82c50d815f5bcf4ce0615729ebbf0fb 100644 (file)
@@ -74,6 +74,12 @@ const typename T::mapped_type &get_item(const T &map, const typename T::key_type
        return i->second;
 }
 
+template<typename D, typename T>
+D *get_item(const T &map, const typename T::key_type &key)
+{
+       return dynamic_cast<D *>(get_item(map, key));
+}
+
 template<typename T>
 typename T::iterator insert_unique(T &map, const typename T::key_type &key, const typename T::mapped_type &item)
 {