Merged revision(s) 57197, 57206, 57423, 57518 from trunk:

Renamed enable_shared_from_this2 to enable_shared_from_raw and
added shared_from_raw free function.  These changes fix the pointer 
value in shared_ptr which were obtained before an external shared_ptr has
taken ownership of the object (for example when a shared_ptr to
this is obtained in an object's constructor).


........
Brought back code which fixes get_deleter when it is called on a deleter 
which has been wrapped inside a deleter_wrapper by "shared_from_raw() in 
constructors" support.

........
Added weak_from_raw(), for use in conjunction with
enable_shared_from_raw base class.


........
Fixed access to enable_shared_from_raw::weak_this_ when 
BOOST_NO_MEMBER_TEMPLATE_FRIENDS is defined.


........


[SVN r81337]
This commit is contained in:
Peter Dimov committed 2012-11-14 13:26:30 +00:00
1 parent 4a2dad1574
commit 71eb435412
4 files changed
+196 -144

No files matched your search

+3 -2
View File
@@ -194,10 +194,11 @@ public:
pn.swap(other.pn);
}
void _internal_assign(T * px2, boost::detail::shared_count const & pn2)
template<typename Y>
void _internal_aliasing_assign(weak_ptr<Y> const & r, T * px2)
{
px = px2;
pn = pn2;
pn = r.pn;
}
template<class Y> bool owner_before( weak_ptr<Y> const & rhs ) const