Как C ++ может использовать стиль передачи продолжения? - PullRequest
9 голосов
/ 28 октября 2011

Предположим, в C ++ вы делаете слишком много рекурсивных вызовов рекурсивной функции и получаете ошибку переполнения стека.

Как бы вы переписали это в стиле продолжения, чтобы избежать переполнения стека?

У меня небольшие трудности с изображением этого на C ++.

1 Ответ

4 голосов
/ 28 октября 2011

Что ж, это довольно открытый вопрос, но Эрик Липперт написал (ну, на самом деле, два), скорее, длинный ряд именно по этой теме . Не совсем правильный язык, но он все равно должен быть довольно полезным и дать общее представление.

Хотя реализация CPS в C ++ кажется большой работой только для исправления одной рекурсивной функции, когда вы можете просто использовать некоторый алгоритм, чтобы сделать функцию итеративной с очередью (вы по-прежнему используете в основном то же количество данных, но куча гораздо менее ограничена).

...