]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
flat_set/map: make erase() take const_iterator
authorJustin Viiret <justin.viiret@intel.com>
Mon, 23 Jan 2017 04:00:22 +0000 (15:00 +1100)
committerMatthew Barr <matthew.barr@intel.com>
Wed, 26 Apr 2017 04:41:30 +0000 (14:41 +1000)
src/util/ue2_containers.h

index 924cae95128c1110fff686c45aa5e3b53e2698a5..ea8ff7bc8132fc3ea74f42d6fd996c637f6ef91f 100644 (file)
@@ -281,11 +281,11 @@ public:
         return insert(value_type(std::forward<Args>(args)...));
     }
 
-    void erase(iterator pos) {
+    void erase(const_iterator pos) {
         data().erase(pos.get());
     }
 
-    void erase(iterator first, iterator last) {
+    void erase(const_iterator first, const_iterator last) {
         data().erase(first.get(), last.get());
     }
 
@@ -525,17 +525,12 @@ public:
         return insert(value_type(std::forward<Args>(args)...));
     }
 
-    void erase(iterator pos) {
-        // Convert to a non-const storage iterator via pointer arithmetic.
-        storage_iterator it = data().begin() + distance(begin(), pos);
-        data().erase(it);
+    void erase(const_iterator pos) {
+        data().erase(pos.get());
     }
 
-    void erase(iterator first, iterator last) {
-        // Convert to a non-const storage iterator via pointer arithmetic.
-        storage_iterator data_first = data().begin() + distance(begin(), first);
-        storage_iterator data_last = data().begin() + distance(begin(), last);
-        data().erase(data_first, data_last);
+    void erase(const_iterator first, const_iterator last) {
+        data().erase(first.get(), last.get());
     }
 
     void erase(const key_type &key) {