#include <iostream>
#include <optional>
#include <stdexcept>
std::optional<int> safe_divide(int numerator, int denominator) {
if (denominator == 0) {
return std::nullopt;
}
return numerator / denominator;
}
int main() {
auto result = safe_divide(10, 2);
if (result) {
std::cout << "Result: " << *result << std::endl;
} else {
std::cout << "Division by zero" << std::endl;
}
try {
std::cout << result.value() << std::endl;
std::cout << safe_divide(5, 0).value() << std::endl;
} catch (const std::bad_optional_access& e) {
std::cout << "Exception: " << e.what() << std::endl;
}
return 0;
}