ev-abseil-init-statement-comparison-002¶
| 字段 | 值 |
|---|---|
| 项目 | abseil/abseil-cpp |
| 固定 commit | 2065f4ded055 |
| 路径 | absl/time/time.h |
| 行段 | L1767-L1771 |
| 特性 | if 与 switch 的初始化语句 |
| 许可证 | Apache-2.0 |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-26 |
| 测试代码 | 否 |
| 发现方式 | regex |
用法¶
在 if 初始化语句中保存三路比较结果,供条件与分支共同使用
为什么典型¶
比较结果只在这个分支里有意义;初始化语句让 c 同时用于条件判断和提前返回,不再需要额外的外层变量。
摘录¶
const int64_t lhs_hi = time_internal::GetRepHi(lhs);
const int64_t rhs_hi = time_internal::GetRepHi(rhs);
if (auto c = lhs_hi <=> rhs_hi; c != std::strong_ordering::equal) {
return c;
}
备注¶
生产路径;C++20 三路比较结果在 if 作用域内复用。