]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/intrusive/test/nonhook_node.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / intrusive / test / nonhook_node.hpp
index 34fed1d06635c081ddade295fdc5eab1c09719d1..e2c666e7136e6cb5f8f2538dc20128c9b2b9adb7 100644 (file)
 
 #include <boost/intrusive/detail/config_begin.hpp>
 #include <boost/intrusive/pointer_traits.hpp>
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/intrusive/detail/to_raw_pointer.hpp>
 #include <boost/intrusive/detail/parent_from_member.hpp>
 
+#include <boost/move/detail/to_raw_pointer.hpp>
+
+#include <boost/static_assert.hpp>
+#include <boost/detail/lightweight_test.hpp>
 
 namespace boost{
 namespace intrusive{
@@ -29,7 +30,7 @@ namespace intrusive{
 template < typename NodeTraits, template <typename> class Node_Algorithms >
 struct nonhook_node_member : public NodeTraits::node
 {
-   typedef NodeTraits                                               node_traits;
+   typedef NodeTraits                                                node_traits;
    typedef typename node_traits::node                                node;
    typedef typename node_traits::node_ptr                            node_ptr;
    typedef typename node_traits::const_node_ptr                      const_node_ptr;
@@ -43,13 +44,12 @@ struct nonhook_node_member : public NodeTraits::node
    nonhook_node_member(const nonhook_node_member& rhs)
    {
       BOOST_TEST(!rhs.is_linked());
-      *this = rhs;
+      node_algorithms::init(pointer_traits<node_ptr>::pointer_to(static_cast< node& >(*this)));
    }
 
    nonhook_node_member& operator = (const nonhook_node_member& rhs)
    {
       BOOST_TEST(!this->is_linked() && !rhs.is_linked());
-      static_cast< node& >(*this) = rhs;
       return *this;
    }
 
@@ -104,14 +104,14 @@ struct nonhook_node_member_value_traits
    {
       return pointer_traits<pointer>::pointer_to
       (*detail::parent_from_member<T, NonHook_Member>
-      (static_cast<NonHook_Member*>(boost::intrusive::detail::to_raw_pointer(n)), P));
+      (static_cast<NonHook_Member*>(boost::movelib::to_raw_pointer(n)), P));
    }
 
    static const_pointer to_value_ptr(const_node_ptr n)
    {
       return pointer_traits<const_pointer>::pointer_to
       (*detail::parent_from_member<T, NonHook_Member>
-      (static_cast<const NonHook_Member*>(boost::intrusive::detail::to_raw_pointer(n)), P));
+      (static_cast<const NonHook_Member*>(boost::movelib::to_raw_pointer(n)), P));
    }
 };