Option has been around for a while as boost::optional or now std::experimental::optional. Result is coming and has a reference implementation as boost::expected. There's also a type-erased option type, "any".
They're quite nice, especially with a few trivial additions for ergonomics.