追記: うっかり戻り値ポリシーのところで boost::python::return_internal_reference<> を使ってしまい、メモリリークを引き起こしていたので修正しました。 Stackless Python であれば continuation が使えるので、Python 側で C++ をまたぐ外部イテレータと内部イテレータの反転が可能なんだけど、通常の Python ではやはり Boost.Coroutine に頼るほかない。 以下のサンプルでは、よくある Visitor パタンに従って実装されたクラスを想定していて、Visitor が visit されるたびに、Python 側に処理が戻るというフローを実現している。 container クラスの戻り値は新たに new されたオブジェクトなので、boost::python::return_value_policy を使

