C++のfutureは「source」という一つの仕組みで理解できる
C++ futures part 1: The mental model
Raymond Chenが、std::promiseやstd::futureなどが共通して持つ「source」という内部構造を解説する連載の第1回。値や例外を一度だけ設定し、条件変数で待機し、消費すると取り出せなくなるという一連の振る舞いを、簡略化したテンプレートコードで示しながら、futureのメンタルモデルを組み立てていく。
この連載を書いているのは、自分がいつもその仕組みを忘れてしまうからだが、書き留めておくと覚えられるのだ。