$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r76261 - trunk/boost/interprocess/smart_ptr/detail
From: igaztanaga_at_[hidden]
Date: 2012-01-01 13:46:40
Author: igaztanaga
Date: 2012-01-01 13:46:39 EST (Sun, 01 Jan 2012)
New Revision: 76261
URL: http://svn.boost.org/trac/boost/changeset/76261
Log:
Use allocator traits instead of allocator::rebind
Text files modified: 
   trunk/boost/interprocess/smart_ptr/detail/shared_count.hpp    |    10 +++++++---                              
   trunk/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp |    18 +++++++++++++-----                      
   2 files changed, 20 insertions(+), 8 deletions(-)
Modified: trunk/boost/interprocess/smart_ptr/detail/shared_count.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/detail/shared_count.hpp	(original)
+++ trunk/boost/interprocess/smart_ptr/detail/shared_count.hpp	2012-01-01 13:46:39 EST (Sun, 01 Jan 2012)
@@ -28,6 +28,7 @@
 #include <boost/interprocess/smart_ptr/detail/bad_weak_ptr.hpp>
 #include <boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
+#include <boost/container/allocator/allocator_traits.hpp>
 #include <boost/detail/no_exceptions_support.hpp>
 #include <functional>       // std::less
 
@@ -54,9 +55,12 @@
          rebind_pointer<counted_impl>::type                         counted_impl_ptr;
    typedef typename boost::intrusive::
       pointer_traits<typename VoidAllocator::pointer>::template
-         rebind_pointer<sp_counted_base>::type                         counted_base_ptr;
-   typedef typename VoidAllocator::template rebind
-      <counted_impl>::other                        counted_impl_allocator;
+         rebind_pointer<sp_counted_base>::type                       counted_base_ptr;
+
+   typedef boost::container::allocator_traits<VoidAllocator>         vallocator_traits;
+
+   typedef typename vallocator_traits::template
+      portable_rebind_alloc<counted_impl>::type                      counted_impl_allocator;
 
    typedef typename boost::intrusive::
       pointer_traits<typename VoidAllocator::pointer>::template
Modified: trunk/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp	(original)
+++ trunk/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp	2012-01-01 13:46:39 EST (Sun, 01 Jan 2012)
@@ -26,6 +26,7 @@
 #include <boost/interprocess/smart_ptr/detail/sp_counted_base.hpp>
 #include <boost/interprocess/smart_ptr/scoped_ptr.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
+#include <boost/container/allocator/allocator_traits.hpp>
 #include <boost/intrusive/pointer_traits.hpp>
 
 namespace boost {
@@ -62,18 +63,25 @@
    {  if (ptr) priv_deallocate(ptr, alloc_version());  }
 };
 
+   
+
 template<class A, class D>
 class sp_counted_impl_pd 
    :  public sp_counted_base
-   ,  A::template rebind< sp_counted_impl_pd<A, D> >::other
+   ,  boost::container::allocator_traits<A>::template
+         portable_rebind_alloc< sp_counted_impl_pd<A, D> >::type
    ,  D  // copy constructor must not throw
 {
    private:
    typedef sp_counted_impl_pd<A, D>          this_type;
-   typedef typename A::template rebind
-      <this_type>::other                     this_allocator;
-   typedef typename A::template rebind
-      <const this_type>::other               const_this_allocator;
+   typedef typename boost::container::
+      allocator_traits<A>::template
+         portable_rebind_alloc
+            < this_type >::type              this_allocator;
+   typedef typename boost::container::
+      allocator_traits<A>::template
+         portable_rebind_alloc
+            < const this_type >::type        const_this_allocator;
    typedef typename this_allocator::pointer  this_pointer;
 
    sp_counted_impl_pd( sp_counted_impl_pd const & );