]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
flat_set: move comp/data helpers to base
authorJustin Viiret <justin.viiret@intel.com>
Fri, 20 Jan 2017 05:06:06 +0000 (16:06 +1100)
committerMatthew Barr <matthew.barr@intel.com>
Wed, 26 Apr 2017 04:41:30 +0000 (14:41 +1000)
src/util/ue2_containers.h

index 7034dc6f27b39c511cd1e51531ff1ecfd0e0764c..47477ed756b94ed9af38e7de6b4b172bd11aed98 100644 (file)
@@ -107,6 +107,12 @@ protected:
 
     flat_base(const Compare &compare, const Allocator &alloc)
         : storage(storage_type(storage_alloc_type(alloc)), compare) {}
+
+    storage_type &data() { return std::get<0>(this->storage); }
+    const storage_type &data() const { return std::get<0>(this->storage); }
+
+    Compare &comp() { return std::get<1>(this->storage); }
+    const Compare &comp() const { return std::get<1>(this->storage); }
 };
 
 } // namespace flat_detail
@@ -125,12 +131,8 @@ class flat_set : flat_detail::flat_base<T, Compare, Allocator>,
                  boost::totally_ordered<flat_set<T, Compare, Allocator>> {
     using base_type = flat_detail::flat_base<T, Compare, Allocator>;
     using storage_type = typename base_type::storage_type;
-
-    storage_type &data() { return std::get<0>(this->storage); }
-    const storage_type &data() const { return std::get<0>(this->storage); }
-
-    Compare &comp() { return std::get<1>(this->storage); }
-    const Compare &comp() const { return std::get<1>(this->storage); }
+    using base_type::data;
+    using base_type::comp;
 
 public:
     // Member types.
@@ -366,12 +368,8 @@ private:
         flat_detail::flat_base<std::pair<Key, T>, Compare, Allocator>;
     using keyval_storage_type = std::pair<key_type, mapped_type>;
     using storage_type = typename base_type::storage_type;
-
-    storage_type &data() { return std::get<0>(this->storage); }
-    const storage_type &data() const { return std::get<0>(this->storage); }
-
-    Compare &comp() { return std::get<1>(this->storage); }
-    const Compare &comp() const { return std::get<1>(this->storage); }
+    using base_type::data;
+    using base_type::comp;
 
 public:
     // More Member types.