From 021e7389a3af6d66693f90b0c329f53b8ed5a56f Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 12 Jun 2021 17:35:07 +0800 Subject: [PATCH] include/cpp-btree: drop node handle support this is a leftover in 73f2d70fc8bdbb4a963483ded0487dd744def215, the node support is useful if we want to move a node around in a node-based container. but in the case of b-tree, multiple elements are packed into a single node/block, so we cannot benefit from this feature, i think. so just drop all of them. Signed-off-by: Kefu Chai --- src/include/cpp-btree/btree_container.h | 17 ----------------- src/include/cpp-btree/btree_set.h | 23 ----------------------- 2 files changed, 40 deletions(-) diff --git a/src/include/cpp-btree/btree_container.h b/src/include/cpp-btree/btree_container.h index bcbd1ff4511da..e8d9efd38a8e0 100644 --- a/src/include/cpp-btree/btree_container.h +++ b/src/include/cpp-btree/btree_container.h @@ -418,7 +418,6 @@ class btree_multiset_container : public btree_container { using allocator_type = typename Tree::allocator_type; using iterator = typename Tree::iterator; using const_iterator = typename Tree::const_iterator; - using node_type = typename super_type::node_type; // Inherit constructors. using super_type::super_type; @@ -472,22 +471,6 @@ class btree_multiset_container : public btree_container { return this->tree_.insert_hint_multi( iterator(position), init_type(std::forward(args)...)); } - iterator insert(node_type &&node) { - if (!node) return this->end(); - iterator res = - this->tree_.insert_multi(params_type::key(node.slot()), - node.slot()); - node.destroy(); - return res; - } - iterator insert(const_iterator hint, node_type &&node) { - if (!node) return this->end(); - iterator res = this->tree_.insert_hint_multi( - iterator(hint), - std::move(params_type::element(node.slot()))); - node.destroy(); - return res; - } // Deletion routines. template diff --git a/src/include/cpp-btree/btree_set.h b/src/include/cpp-btree/btree_set.h index 7d59887dc8828..57536ce2f502d 100644 --- a/src/include/cpp-btree/btree_set.h +++ b/src/include/cpp-btree/btree_set.h @@ -532,29 +532,6 @@ class btree_multiset // Any references, pointers, or iterators are invalidated. using Base::emplace_hint; - // btree_multiset::extract() - // - // Extracts the indicated element, erasing it in the process, and returns it - // as a C++17-compatible node handle. Overloads are listed below. - // - // node_type extract(const_iterator position): - // - // Extracts the element at the indicated position and returns a node handle - // owning that extracted data. - // - // template node_type extract(const K& x): - // - // Extracts the element with the key matching the passed key value and - // returns a node handle owning that extracted data. If the `btree_multiset` - // does not contain an element with a matching key, this function returns an - // empty node handle. - // - // NOTE: In this context, `node_type` refers to the C++17 concept of a - // move-only type that owns and provides access to the elements in associative - // containers (https://en.cppreference.com/w/cpp/container/node_handle). - // It does NOT refer to the data layout of the underlying btree. - using Base::extract; - // btree_multiset::merge() // // Extracts elements from a given `source` btree_multiset into this -- 2.39.5