c++如何使用延续传递风格

How can C++ use continuation-passing style?

本文关键字:风格 延续 何使用 c++      更新时间:2023-10-16

假设在c++中,你对一个递归函数进行了太多的递归调用,并得到了堆栈溢出错误。

如何用延续传递的方式重写以避免堆栈溢出?

我有点难以用c++来描绘这个

这是一个相当开放的问题,但是Eric Lippert写了一个(实际上是两个)相当长的关于这个话题的系列文章。不完全是正确的语言,但它应该还是相当有帮助的,并给出了大致的想法。

虽然在c++中实现CPS似乎只是为了修复单个递归函数而做了很多工作,但当你可以使用一些算法使函数与队列迭代时(你仍然使用基本相同的数据量,但堆的限制要少得多)。