跳转至

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 作用域内复用。

查看固定 commit 源码 · 返回证据索引