std::expected — value or error type.
1#include <expected>23std::expected<int, std::string> parse(const std::string& s) {4 try {5 return std::stoi(s);6 } catch (...) {7 return std::unexpected("parse error");8 }9}1011auto result = parse("42");12if (result) {13 std::cout << *result; // 4214} else {15 std::cout << result.error(); // "parse error"16}
vs alternatives:
Operations:
has_value(): check successvalue(): get value or throwerror(): get errortransform(): map valueand_then(): chain operations