Boost: la rutina no usa pilas segmentadas

¿Alguien puede darme un ejemplo de cómo puedo usar pilas segmentadas con corutinas de refuerzo? ¿Tengo que anotar cada función que se llama desde la rutina con un especialsplit-stack ¿atributo?

Cuando intento escribir un programa quedebería usa pilas segmentadas, solo segfaults.

Esto es lo que he hecho hasta ahora.https://wandbox.org/permlink/TltQwGpy4hRoHgDY El código parece segfault muy rápidamente, si se usaran pilas segmentadas, esperaría que pudiera manejar más iteraciones. El programa falla después de 35 iteraciones.

#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);
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta