Libera cualquier estado compartido. Esto significa que:
- si el objeto de retorno o el proveedor contiene la última referencia a su estado compartido, el estado compartido se destruye; y
- el objeto de retorno o proveedor renuncia a su referencia a su estado compartido; y
- estas acciones no se bloquearán para que el estado compartido quede listo, excepto que puede bloquearse si todo lo siguiente es verdadero: (I) el estado compartido fue creado por una llamada a std::async, (II) el estado compartido aún no está listo, (III) la política de lanzamiento de la tarea es
std::launch::async (consulte el artículo 36 de Effective Modern C++), ya sea porque fue elegido por el sistema de tiempo de ejecución o porque se especificó en la llamada a std::async (IV) y esta fue la última referencia al estado compartido.
| (desde C++14) |