跳到主要内容

variant-optional

可选与代数类型:std::optional/std::variant

std::optional<T> 表示可有可无的值:

#include <optional>
std::optional<int> parse(const char* s);

std::variant 表示“联合但安全”的代数数据类型,配合 std::visit 进行模式匹配:

#include <variant>
#include <string>

using Result = std::variant<int, std::string>;

Result f(bool ok){ return ok ? Result{42} : Result{std::string("err")}; }

建议:接口返回错误时优先 expected 风格(C++23 std::expected 或自定义/第三方)。