]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/heap/binomial_heap.hpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / boost / heap / binomial_heap.hpp
index dd2eeda9793b9f4aa15abbc0dcd677808dba0e6a..76b1d92214c027389c45d14ceef5582f9d373dc6 100644 (file)
@@ -57,11 +57,7 @@ struct make_binomial_heap_base
 
     typedef parent_pointing_heap_node<typename base_type::internal_type> node_type;
 
-#ifdef BOOST_NO_CXX11_ALLOCATOR
-    typedef typename allocator_argument::template rebind<node_type>::other allocator_type;
-#else
-    typedef typename std::allocator_traits<allocator_argument>::template rebind_alloc<node_type> allocator_type;
-#endif
+    typedef typename boost::allocator_rebind<allocator_argument, node_type>::type allocator_type;
 
     struct type:
         base_type,
@@ -162,14 +158,8 @@ private:
         typedef typename base_maker::allocator_type allocator_type;
         typedef typename base_maker::node_type node;
 
-#ifdef BOOST_NO_CXX11_ALLOCATOR
-        typedef typename allocator_type::pointer node_pointer;
-        typedef typename allocator_type::const_pointer const_node_pointer;
-#else
-        typedef std::allocator_traits<allocator_type> allocator_traits;
-        typedef typename allocator_traits::pointer node_pointer;
-        typedef typename allocator_traits::const_pointer const_node_pointer;
-#endif
+        typedef typename boost::allocator_pointer<allocator_type>::type node_pointer;
+        typedef typename boost::allocator_const_pointer<allocator_type>::type const_node_pointer;
 
         typedef detail::node_handle<node_pointer, super_t, reference> handle_type;
 
@@ -210,9 +200,6 @@ public:
     typedef typename implementation_defined::difference_type difference_type;
     typedef typename implementation_defined::value_compare value_compare;
     typedef typename implementation_defined::allocator_type allocator_type;
-#ifndef BOOST_NO_CXX11_ALLOCATOR
-    typedef typename implementation_defined::allocator_traits allocator_traits;
-#endif
     typedef typename implementation_defined::reference reference;
     typedef typename implementation_defined::const_reference const_reference;
     typedef typename implementation_defined::pointer pointer;
@@ -317,12 +304,8 @@ public:
     /// \copydoc boost::heap::priority_queue::max_size
     size_type max_size(void) const
     {
-#ifdef BOOST_NO_CXX11_ALLOCATOR
-        return allocator_type::max_size();
-#else
         const allocator_type& alloc = *this;
-        return allocator_traits::max_size(alloc);
-#endif
+        return boost::allocator_max_size(alloc);
     }
 
     /// \copydoc boost::heap::priority_queue::clear
@@ -365,14 +348,9 @@ public:
      * */
     handle_type push(value_type const & v)
     {
-#ifdef BOOST_NO_CXX11_ALLOCATOR
-        node_pointer n = allocator_type::allocate(1);
-        new(n) node_type(super_t::make_node(v));
-#else
         allocator_type& alloc = *this;
-        node_pointer n = allocator_traits::allocate(alloc, 1);
-        allocator_traits::construct(alloc, n, super_t::make_node(v));
-#endif
+        node_pointer n = alloc.allocate(1);
+        new(n) node_type(super_t::make_node(v));
         insert_node(trees.begin(), n);
 
         if (!top_element || super_t::operator()(top_element->value, n->value))
@@ -393,14 +371,9 @@ public:
     template <class... Args>
     handle_type emplace(Args&&... args)
     {
-#ifdef BOOST_NO_CXX11_ALLOCATOR
-        node_pointer n = allocator_type::allocate(1);
-        new(n) node_type(super_t::make_node(std::forward<Args>(args)...));
-#else
         allocator_type& alloc = *this;
-        node_pointer n = allocator_traits::allocate(alloc, 1);
-        allocator_traits::construct(alloc, n, super_t::make_node(std::forward<Args>(args)...));
-#endif
+        node_pointer n = alloc.allocate(1);
+        new(n) node_type(super_t::make_node(std::forward<Args>(args)...));
         insert_node(trees.begin(), n);
 
         if (!top_element || super_t::operator()(top_element->value, n->value))
@@ -450,14 +423,9 @@ public:
         else
             update_top_element();
 
-#ifdef BOOST_NO_CXX11_ALLOCATOR
         element->~node_type();
-        allocator_type::deallocate(element, 1);
-#else
         allocator_type& alloc = *this;
-        allocator_traits::destroy(alloc, element);
-        allocator_traits::deallocate(alloc, element, 1);
-#endif
+        alloc.deallocate(element, 1);
         sanity_check();
     }