intrusive_ptr.hpp added (still experimental)

[SVN r13526]
This commit is contained in:
Peter Dimov
2002-04-19 19:34:16 +00:00
parent 9b800d4f84
commit fbc9028313
3 changed files with 226 additions and 4 deletions
+6
View File
@@ -68,6 +68,7 @@ template<> struct shared_ptr_traits<void>
//
template<typename T> class weak_ptr;
template<typename T> class intrusive_ptr;
template<typename T> class shared_ptr
{
@@ -110,6 +111,11 @@ public:
{
}
template<typename Y>
shared_ptr(intrusive_ptr<Y> const & r): px(r.get()), pn(r.get()) // never throws
{
}
template<typename Y>
shared_ptr(shared_ptr<Y> const & r, detail::static_cast_tag): px(static_cast<element_type *>(r.px)), pn(r.pn)
{