Qual é a alternativa para futuros e promessas em C ++ gerenciado

Ao compilar código C ++ gerenciado com o sinalizador / clr, o compilador não permite a inclusão. Estou tentando portar meu código C ++ não gerenciado em um ambiente C ++ gerenciado. Vejo que o C # tem as alternativas Task e TaskCompletionSource para substituir futuros e promessas, mas não vejo essas opções disponíveis no C ++ gerenciado. Preciso executar interoperabilidade com algumas bibliotecas não gerenciadas em C ++ para não poder mudar completamente para C #. Eu ainda preciso de uma camada C ++ no meio. Como posso obter funcionalidades futuras / promissoras em C ++ gerenciado?

Aqui está um exemplo de código não gerenciado em C ++, que é compilado sem o sinalizador / clr:

int Foo(std::future<int> &fur) {
    int result = 1;
    int value = fut.get();
    // Do something with value

    return result;
}   

int main() {
    int x;
    std::promise<int> p;
    std::future<int> f = p.get_future();
    std::future<int> fut = std::async(Foo, std::ref(f));
    int val = 1;
    p.set_value(val);
    x = fut.get();
}    

Quero poder fazer isso em C ++ / CLI

questionAnswers(2)

yourAnswerToTheQuestion