// // Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com) // // 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) // // Official repository: https://github.com/boostorg/beast // #ifndef BOOST_BEAST_CORE_DETAIL_ASYNC_BASE_HPP #define BOOST_BEAST_CORE_DETAIL_ASYNC_BASE_HPP #include namespace boost { namespace beast { namespace detail { struct stable_base { static void destroy_list(stable_base*& list) { while(list) { auto next = list->next_; list->destroy(); list = next; } } stable_base* next_ = nullptr; protected: stable_base() = default; virtual ~stable_base() = default; virtual void destroy() = 0; }; } // detail } // beast } // boost #endif