Boost.Corotina que não usa pilhas segmentadas

Alguém pode me dar um exemplo de como posso usar pilhas segmentadas com corotinas de reforço? Tenho que anotar todas as funções chamadas da corotina com um especialsplit-stack atributo?

Quando tento escrever um programa quedevemos use pilhas segmentadas, apenas segfaults.

Aqui está o que eu fiz até agorahttps://wandbox.org/permlink/TltQwGpy4hRoHgDY O código parece se dividir rapidamente, se pilhas segmentadas forem usadas, eu esperaria que ele fosse capaz de lidar com mais iterações. O programa falha após 35 iterações.

#include <boost/coroutine2/all.hpp>

#include <iostream>
#include <array>

using std::cout;
using std::endl;

class Int {
    int a{2};
};

void foo(int num) {
    cout << "In iteration " << num << endl;
    std::array<Int, 1000> arr;
    static_cast<void>(arr);
    foo(num + 1);
}

int main() {
    using Coroutine_t = boost::coroutines2::coroutine<int>::push_type;
    auto coro = Coroutine_t{[&](auto& yield) {
        foo(yield.get());
    }};

    coro(0);
}

questionAnswers(2)

yourAnswerToTheQuestion