Making optional optional
summary
Claims that construction choice matters: forwarding make_optional forces a compile time decision so it behaves like make_mandatory, a homemade make_really_optional hides branching with a factory lambda, and a custom nought type converts to any std::optional for tidy ternary expressions. Discovering std::nullopt does the same job shows the canonical tool already exists, so documentation and code that default‑construct then assign should be replaced with direct construction using nullopt or value so call sites stay local and clear.
AI-written summary · about








