memory.hpp
Go to the documentation of this file.
7 /*************************************************************************************************/
26 /*************************************************************************************************/
30 /*************************************************************************************************/
78 /*************************************************************************************************/
247 /*************************************************************************************************/
263 /*************************************************************************************************/
296 template <typename Y> auto_resource(const auto_resource<Y, typename traits_type::template rebind<Y>::other>&) throw();
299 template<typename Y> auto_resource& operator=(auto_resource<Y, typename traits_type::template rebind<Y>::other>) throw();
325 // VC 2003 internal compiler error workaround. Some misues of auto_resource will go undetected under MSVC until fixed.
328 template <typename Y> struct error_on_const_auto_type<auto_resource<Y, typename traits_type::template rebind<Y>::other> const>
329 { typedef typename auto_resource<Y, typename traits_type::template rebind<Y>::other>::const_auto_type_is_not_allowed type; };
337 /*************************************************************************************************/
411 template <typename Y> auto_ptr(const auto_ptr<Y, typename traits_type::template rebind<Y*>::other>&) throw();
414 template<typename Y> auto_ptr& operator=(auto_ptr<Y, typename traits_type::template rebind<Y*>::other>) throw();
435 template <typename Y> struct error_on_const_auto_type<auto_ptr<Y, typename traits_type::template rebind<Y*>::other> const>
436 { typedef typename auto_ptr<Y, typename traits_type::template rebind<Y*>::other>::const_auto_type_is_not_allowed type; };
444 /*************************************************************************************************/
458 inline auto_resource <X, Traits>::auto_resource(auto_resource<Y, typename traits_type::template rebind<Y>::other> const& x) throw() :
459 pointer_m(const_cast<auto_resource<Y, typename traits_type::template rebind<Y>::other>&>(x).release())
482 /*************************************************************************************************/
491 /*************************************************************************************************/
494 inline typename auto_resource<X, Traits>::pointer_type auto_resource<X, Traits>::get() const throw()
500 inline typename auto_resource<X, Traits>::pointer_type auto_resource<X, Traits>::release() throw()
517 /*************************************************************************************************/
525 /*************************************************************************************************/
540 inline auto_ptr<X, Traits>::auto_ptr(const auto_ptr<Y, typename traits_type::template rebind<Y*>::other>& r) throw() :
560 /*************************************************************************************************/
569 /*************************************************************************************************/
598 /*************************************************************************************************/
601 inline typename auto_ptr<X, Traits>::element_type& auto_ptr<X, Traits>::operator * () const throw()
608 inline typename auto_ptr<X, Traits>::pointer_type auto_ptr<X, Traits>::operator -> () const throw()
615 inline typename auto_ptr<X, Traits>::element_type& auto_ptr<X, Traits>::operator [] (std::size_t index) const throw()
623 /*************************************************************************************************/
643 /*************************************************************************************************/
659 /*************************************************************************************************/
737 /*************************************************************************************************/
741 /*************************************************************************************************/
761 aligned_storage(move_from<aligned_storage> x) { construct(&get(), adobe::move(x.source.get())); }
774 typedef double storage_t[((sizeof(T) + (word_size - 1)) / word_size) * (word_size / sizeof(double))];
785 /*************************************************************************************************/
|