Raymond Chen desmonta el modelo mental detrás de std::future en C++

C++ futures part 1: The mental model

Raymond Chen explica en The Old New Thing cómo std::promise, std::packaged_task, std::async, std::future y std::shared_future se construyen sobre una única clase interna sin nombre, a la que llama source, análoga al task completion source de C#. Describe sus operaciones —fijar un valor o una excepción, esperar y recuperar— y muestra una implementación simplificada con mutex, condition_variable y una unión discriminada, dejando el destructor como ejercicio para el lector.

Escribo la serie porque siempre olvido cómo funciona, pero escribirlo me ayuda a recordarlo.

Más de este día

2026-10-21