diff --git a/include/boost/smart_ptr/enable_shared_from.hpp b/include/boost/smart_ptr/enable_shared_from.hpp new file mode 100644 index 0000000..db347e6 --- /dev/null +++ b/include/boost/smart_ptr/enable_shared_from.hpp @@ -0,0 +1,37 @@ +#ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_HPP_INCLUDED +#define BOOST_SMART_PTR_ENABLE_SHARED_FROM_HPP_INCLUDED + +// enable_shared_from.hpp +// +// Copyright 2019 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +// See http://www.boost.org/libs/smart_ptr/ for documentation. + +#include +#include + +namespace boost +{ + +class enable_shared_from: public enable_shared_from_this +{ +}; + + +template shared_ptr shared_from( T * p ) +{ + return shared_ptr( p->enable_shared_from::shared_from_this(), p ); +} + +template weak_ptr weak_from( T * p ) BOOST_SP_NOEXCEPT +{ + return weak_ptr( p->enable_shared_from::weak_from_this(), p ); +} + +} // namespace boost + +#endif // #ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_HPP_INCLUDED