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