¿Cuál es la alternativa a futuros y promesas en C ++ administrado?
Al compilar código C ++ administrado con el indicador / clr, el compilador no permite la inclusión. Estoy tratando de transferir mi código C ++ no administrado a un entorno C ++ administrado. Veo que C # tiene las alternativas Task y TaskCompletionSource para reemplazar futuros y promesas, pero no veo estas opciones disponibles en C ++ administrado. Necesito realizar interoperabilidad con algunas bibliotecas no administradas de C ++, por lo que no puedo cambiar a C # por completo. Todavía necesito una capa de C ++ en el medio. ¿Cómo puedo lograr la funcionalidad futura / prometedora en C ++ administrado?
Aquí hay un ejemplo de código no administrado en C ++ que se compila sin el indicador / 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();
}
Quiero poder hacer esto en C ++ / CLI