title: In C++ when should we use std::any, std::variant or std::optional?
body: <p>I know there is a question about std::any vs std::variant, but std::optional is also about a same thing.
  <a href="https://stackoverflow.com/questions/56303939/c-stdvariant-vs-stdany">C++ std::variant vs std::any</a></p>