std::optional is more-or-less avialable in Xcode 10.3, with the language dialect set to C++17, but not if the deployment target is less than iOS 12. std::optional is availble, but not value() methods of the class.
I don't understand why a particular iOS runtime is needed to support something in the C++ standard (template) library.
We can't give up support for iOS 11 until well after iOS 13 is out.
I've seen some stuff around setting
_LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS
This seems to be defined by Xcode as
__attribute__((availability(ios,strict,introduced=12.0)))
Is there really no way to get full optional support AND target iOS 11.x?