C++의 future는 결국 하나의 'source'에서 나온다

C++ futures part 1: The mental model

Raymond Chen이 std::promise, std::packaged_task, std::async, std::future, std::shared_future가 모두 공유하는 내부 구조를 풀어낸다. 값이나 예외를 한 번만 설정하고, 조건 변수로 기다리며, 소비 여부까지 관리하는 익명 클래스를 'source'라 부르고 직접 구현해 보여준다. 이 단일 부품 위에 나머지 future 관련 기능이 어떻게 얹히는지 이해하는 것이 시리즈의 목표다.

이 시리즈를 쓰는 이유는 내가 항상 이게 어떻게 동작하는지 잊어버리기 때문인데, 적어두면 기억하는 데 도움이 된다.

이 날의 다른 글

2026-10-21