// // Copyright (c) 2024 Klemens Morgenstern (klemens.morgenstern@gmx.net) // // 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) // #ifndef BOOST_COBALT_EXPERIMENTAL_FRAME_HPP #define BOOST_COBALT_EXPERIMENTAL_FRAME_HPP #include #include namespace boost::cobalt::experimental { template struct frame { void (*resume_) (frame *) = +[](frame * ff) { static_cast(ff)->resume();}; void (*destroy_)(frame *) = +[](frame * ff) { static_cast(ff)->destroy();}; typedef Promise promise_type; Promise promise; template frame(Args && ... args) : promise(std::forward(args)...) { } }; } #endif //BOOST_COBALT_EXPERIMENTAL_FRAME_HPP