Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/signals2/postconstructible.hpp @ 101:c530137014c0
Update Boost headers (1.58.0)
author | Chris Cannam |
---|---|
date | Mon, 07 Sep 2015 11:12:49 +0100 |
parents | 2665513ce2d3 |
children |
line wrap: on
line source
// DEPRECATED in favor of adl_postconstruct with deconstruct<T>(). // A simple framework for creating objects with postconstructors. // The objects must inherit from boost::signals2::postconstructible, and // have their lifetimes managed by // boost::shared_ptr created with the boost::signals2::deconstruct_ptr() // function. // // Copyright Frank Mori Hess 2007-2008. // // Use, modification and // distribution is subject to 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) #ifndef BOOST_SIGNALS2_POSTCONSTRUCTIBLE_HPP #define BOOST_SIGNALS2_POSTCONSTRUCTIBLE_HPP namespace boost { template<typename T> class shared_ptr; namespace signals2 { namespace postconstructible_adl_barrier { class postconstructible; } namespace detail { void do_postconstruct(const boost::signals2::postconstructible_adl_barrier::postconstructible *ptr); } // namespace detail namespace postconstructible_adl_barrier { class postconstructible { public: friend void detail::do_postconstruct(const postconstructible *ptr); template<typename T> friend void adl_postconstruct(const shared_ptr<T> &sp, postconstructible *p) { p->postconstruct(); } protected: postconstructible() {} virtual ~postconstructible() {} virtual void postconstruct() = 0; }; } // namespace postconstructible_adl_barrier using postconstructible_adl_barrier::postconstructible; } } #endif // BOOST_SIGNALS2_POSTCONSTRUCTIBLE_HPP