C ++で、再帰関数に対して多すぎる再帰呼び出しを行い、スタックオーバーフローエラーが発生したとします。
スタックのオーバーフローを避けるために、これを継続渡しスタイルでどのように書き直しますか?
私はこれをC ++でやや難解にしています。
まあ、それはむしろオープンな質問ですが、Eric Lippertは実際には長いシリーズをご覧ください。必ずしも正しい言語ではありませんが、それはまだまだ役立ち、一般的な考え方を与えるべきです。
C ++でCPSを実装することは、単一の再帰関数を修正するだけの多くの作業のようですが、キューを使って関数を繰り返し実行するアルゴリズムを使うことができます(ただし、基本的に同じ量のデータを使用しますが、制限が少ない)。