Boost.Contextにstart()という関数がありますが、これは再始動には使えないみたいです。 再始動する場合には、contextを作り直す必要があります。contextクラスはムーブ代入演算子を持ってるので、コンストラクトした一時オブジェクトの所有権を移譲することで作り直しができます。 #include <iostream> #include <boost/context/all.hpp> #include <boost/function.hpp> #include <boost/utility/value_init.hpp> class continuation { boost::contexts::context ctx_; boost::function<void(continuation&)> fn_; boost::initialized<bool> started_;