]> git.tdb.fi Git - libs/core.git/commitdiff
Add a moving overload of insert_unique
authorMikko Rasa <tdb@tdb.fi>
Sun, 27 Aug 2023 10:59:18 +0000 (13:59 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sun, 27 Aug 2023 10:59:18 +0000 (13:59 +0300)
source/core/maputils.h

index 9a72d4d30f30e0339bec305b5589dc14e73be9d1..94947a16fc60e3e5c2c63a864d0beb1f7780be79 100644 (file)
@@ -90,6 +90,15 @@ typename T::iterator insert_unique(T &map, const typename T::key_type &key, cons
        return map.insert(std::make_pair(key, item)).first;
 }
 
+template<typename T>
+typename T::iterator insert_unique(T &map, const typename T::key_type &key, typename T::mapped_type &&item)
+{
+       if(map.count(key))
+               throw key_error(key);
+
+       return map.insert(std::make_pair(key, std::move(item))).first;
+}
+
 template<typename T>
 void remove_existing(T &map, const typename T::key_type &key)
 {