From f763a99a501650eff2c60288aa6f10ef916d769e Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Thu, 6 Oct 2016 10:41:18 +0900 Subject: Imported Upstream version 1.62.0 Change-Id: I9d4c1ddb7b7d8f0069217ecc582700f9fda6dd4c Signed-off-by: DongHun Kwak --- boost/intrusive/sg_set.hpp | 59 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'boost/intrusive/sg_set.hpp') diff --git a/boost/intrusive/sg_set.hpp b/boost/intrusive/sg_set.hpp index 171bd59ed1..745c3790b9 100644 --- a/boost/intrusive/sg_set.hpp +++ b/boost/intrusive/sg_set.hpp @@ -26,6 +26,11 @@ namespace boost { namespace intrusive { +#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) +template +class sg_multiset_impl; +#endif + //! The class template sg_set is an intrusive container, that mimics most of //! the interface of std::sg_set as described in the C++ standard. //! @@ -148,6 +153,15 @@ class sg_set_impl //! @copydoc ::boost::intrusive::sgtree::crend()const const_reverse_iterator crend() const; + //! @copydoc ::boost::intrusive::sgtree::root() + iterator root(); + + //! @copydoc ::boost::intrusive::sgtree::root()const + const_iterator root() const; + + //! @copydoc ::boost::intrusive::sgtree::croot()const + const_iterator croot() const; + //! @copydoc ::boost::intrusive::sgtree::container_from_end_iterator(iterator) static sg_set_impl &container_from_end_iterator(iterator end_iterator); @@ -410,6 +424,24 @@ class sg_set_impl //! @copydoc ::boost::intrusive::sgtree::balance_factor(float) void balance_factor(float new_alpha); + //! @copydoc ::boost::intrusive::rbtree::merge_unique + template + void merge(sg_set &source); + + //! @copydoc ::boost::intrusive::rbtree::merge_unique + template + void merge(sg_multiset &source); + + #else + + template + void merge(sg_set_impl &source) + { return tree_type::merge_unique(source); } + + template + void merge(sg_multiset_impl &source) + { return tree_type::merge_unique(source); } + #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED }; @@ -669,6 +701,15 @@ class sg_multiset_impl //! @copydoc ::boost::intrusive::sgtree::crend()const const_reverse_iterator crend() const; + //! @copydoc ::boost::intrusive::sgtree::root() + iterator root(); + + //! @copydoc ::boost::intrusive::sgtree::root()const + const_iterator root() const; + + //! @copydoc ::boost::intrusive::sgtree::croot()const + const_iterator croot() const; + //! @copydoc ::boost::intrusive::sgtree::container_from_end_iterator(iterator) static sg_multiset_impl &container_from_end_iterator(iterator end_iterator); @@ -889,6 +930,24 @@ class sg_multiset_impl //! @copydoc ::boost::intrusive::sgtree::balance_factor(float) void balance_factor(float new_alpha); + //! @copydoc ::boost::intrusive::treap::merge_unique + template + void merge(sg_multiset &source); + + //! @copydoc ::boost::intrusive::treap::merge_unique + template + void merge(sg_set &source); + + #else + + template + void merge(sg_multiset_impl &source) + { return tree_type::merge_equal(source); } + + template + void merge(sg_set_impl &source) + { return tree_type::merge_equal(source); } + #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED }; -- cgit v1.2.3