ev-abseil-tuple-split-name-value-001¶
| 字段 | 值 |
|---|---|
| 项目 | abseil/abseil-cpp |
| 固定 commit | 2065f4ded055 |
| 路径 | absl/flags/parse.cc |
| 行段 | L284-L296 |
| 特性 | std::tuple |
| 许可证 | Apache-2.0 |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-11-03 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
用 tuple 一次返回名称、值与空值标志三个结果
为什么典型¶
解析函数需要同时返回多个异构结果;std::tuple 避免为一次性返回值定义具名结构体,并在调用处用 tie 解包。
摘录¶
// For example:
// arg return values
// "--foo=bar" -> {"foo", "bar", false}.
// "--foo" -> {"foo", "", false}.
// "--foo=" -> {"foo", "", true}.
std::tuple<absl::string_view, absl::string_view, bool> SplitNameAndValue(
absl::string_view arg) {
// Allow -foo and --foo
absl::ConsumePrefix(&arg, "-");
if (arg.empty()) {
return std::make_tuple("", "", false);
}
备注¶
生产路径;函数签名的 tuple 元素顺序与注释中的返回格式一一对应,调用方用结构化绑定或 tie 解包。