annotate DEPENDENCIES/generic/include/boost/signals2/predestructible.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 // DEPRECATED in favor of adl_predestruct with deconstruct<T>().
Chris@16 2 // A simple framework for creating objects with predestructors.
Chris@16 3 // The objects must inherit from boost::signals2::predestructible, and
Chris@16 4 // have their lifetimes managed by
Chris@16 5 // boost::shared_ptr created with the boost::signals2::deconstruct_ptr()
Chris@16 6 // function.
Chris@16 7 //
Chris@16 8 // Copyright Frank Mori Hess 2007-2008.
Chris@16 9 //
Chris@16 10 //Use, modification and
Chris@16 11 // distribution is subject to the Boost Software License, Version
Chris@16 12 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at
Chris@16 13 // http://www.boost.org/LICENSE_1_0.txt)
Chris@16 14
Chris@16 15 #ifndef BOOST_SIGNALS2_PREDESTRUCTIBLE_HPP
Chris@16 16 #define BOOST_SIGNALS2_PREDESTRUCTIBLE_HPP
Chris@16 17
Chris@16 18 namespace boost
Chris@16 19 {
Chris@16 20 namespace signals2
Chris@16 21 {
Chris@16 22 template<typename T> class predestructing_deleter;
Chris@16 23
Chris@16 24 namespace predestructible_adl_barrier
Chris@16 25 {
Chris@16 26 class predestructible
Chris@16 27 {
Chris@16 28 protected:
Chris@16 29 predestructible() {}
Chris@16 30 public:
Chris@16 31 template<typename T>
Chris@16 32 friend void adl_postconstruct(const shared_ptr<T> &, ...)
Chris@16 33 {}
Chris@16 34 friend void adl_predestruct(predestructible *p)
Chris@16 35 {
Chris@16 36 p->predestruct();
Chris@16 37 }
Chris@16 38 virtual ~predestructible() {}
Chris@16 39 virtual void predestruct() = 0;
Chris@16 40 };
Chris@16 41 } // namespace predestructible_adl_barrier
Chris@16 42 using predestructible_adl_barrier::predestructible;
Chris@16 43 }
Chris@16 44 }
Chris@16 45
Chris@16 46 #endif // BOOST_SIGNALS2_PREDESTRUCTIBLE_HPP