You can always just use Boost. I don't think I've ever worked on a C++ project that didn't use it!
std::filesystem = boost::filesystem - 1.30.0, 2003
std::optional = boost::optional - 1.30.0, 2003
std::filesystem = boost::filesystem - 1.30.0, 2003
std::optional = boost::optional - 1.30.0, 2003