#include <iostream>
#include <optional>
// C++17 引入了 std::optional,用于表示可能有值也可能没有值的情况。
// 这有助于避免使用指针或特殊值来表示“无值”的情况。
std::optional<int> divide(int numerator, int denominator) {
if (denominator == 0) {
return std::nullopt; // 表示没有有效的返回值
} else {
return numerator / denominator;
}
}
int main() {
auto result = divide(10, 2);
if (result.has_value()) {
std::cout << "Result: " << result.value() << std::endl;
} else {
std::cout << "Division by zero is not allowed." << std::endl;
}
auto result2 = divide(10, 0);
if (result2.has_value()) {
std::cout << "Result: " << result2.value() << std::endl;
} else {
std::cout << "Division by zero is not allowed." << std::endl;
}
return 0;
}
std::optional 是 C++17 引入的一个类模板,用于表示一个可能有值也可能没有值的变量。divide 函数尝试执行除法操作。如果分母为零,则返回 std::nullopt 表示没有有效值;否则返回商。main 函数中,我们调用 divide 并检查返回的 std::optional 是否包含有效值,从而决定输出什么内容。has_value() 方法检查 std::optional 是否包含值,使用 value() 方法获取其内部存储的值。上一篇:c++ double保留两位小数
下一篇:c++ raii
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站