継続について勉強中。 非決定性計算に使われるambオペレータをBoost.Contextで実装してみました。 AMB_BLOCKの中で生成したamberのオブジェクトは、それらの組み合わせを扱うことができます。 #include <iostream> #include "amb.hpp" void amb1_f(amber& cont) { cont.suspend(1); cont.suspend(2); cont.suspend_break(3); } void amb2_f(amber& cont) { cont.suspend(4); cont.suspend_break(5); } void amb3_f(amber& cont) { cont.suspend(6); cont.suspend(7); cont.suspend_break(8); } int main() { A