30 #ifndef _BACKWARD_AUTO_PTR_H
31 #define _BACKWARD_AUTO_PTR_H 1
36 namespace std _GLIBCXX_VISIBILITY(default)
38 _GLIBCXX_BEGIN_NAMESPACE_VERSION
47 template<
typename _Tp1>
54 } _GLIBCXX_DEPRECATED;
86 template<
typename _Tp>
124 template<
typename _Tp1>
138 reset(__a.release());
152 template<
typename _Tp1>
156 reset(__a.release());
183 __glibcxx_assert(_M_ptr != 0);
196 __glibcxx_assert(_M_ptr != 0);
211 get()
const throw() {
return _M_ptr; }
265 : _M_ptr(__ref._M_ptr) { }
270 if (__ref._M_ptr != this->get())
273 _M_ptr = __ref._M_ptr;
278 template<
typename _Tp1>
279 operator auto_ptr_ref<_Tp1>() throw()
280 {
return auto_ptr_ref<_Tp1>(this->
release()); }
282 template<
typename _Tp1>
283 operator auto_ptr<_Tp1>() throw()
284 {
return auto_ptr<_Tp1>(this->
release()); }
285 } _GLIBCXX_DEPRECATED;
294 } _GLIBCXX_DEPRECATED;
296 #if __cplusplus >= 201103L
297 template<_Lock_policy _Lp>
298 template<
typename _Tp>
301 : _M_pi(new _Sp_counted_ptr<_Tp*, _Lp>(__r.get()))
304 template<
typename _Tp, _Lock_policy _Lp>
305 template<
typename _Tp1,
typename>
308 : _M_ptr(__r.get()), _M_refcount()
310 __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
311 static_assert(
sizeof(_Tp1) > 0,
"incomplete type" );
312 _Tp1* __tmp = __r.get();
313 _M_refcount = __shared_count<_Lp>(std::move(__r));
314 _M_enable_shared_from_this_with(__tmp);
317 template<
typename _Tp>
318 template<
typename _Tp1,
typename>
321 : __shared_ptr<_Tp>(
std::move(__r)) { }
323 template<
typename _Tp,
typename _Dp>
324 template<
typename _Up,
typename>
327 : _M_t(__u.release(), deleter_type()) { }
330 _GLIBCXX_END_NAMESPACE_VERSION