From 4b6cb1223b862095bdb7ab7cd4c91be9292a52e6 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Wed, 24 Apr 2019 04:50:30 +0300 Subject: [PATCH] Add boost/smart_ptr/enable_shared_from.hpp --- .../boost/smart_ptr/enable_shared_from.hpp | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 include/boost/smart_ptr/enable_shared_from.hpp 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