跳转至

ev-abseil-constexpr-lambda-for-each-002

字段 值
项目 abseil/abseil-cpp
固定 commit 2065f4ded055
路径 absl/algorithm/container_test.cc
行段 L1744-L1750
特性 constexpr lambda
许可证 Apache-2.0
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-26
测试代码 是
发现方式 manual

用法

用立即调用的 constexpr lambda 在编译期填充并返回数组

为什么典型

测试需要在编译期构造预期值;lambda 内可以写循环和调用 constexpr 算法,结果直接参与 static_assert。

摘录

TEST(ConstexprTest, ForEach) {
  static constexpr std::array<int, 3> kArray = [] {
    std::array<int, 3> array = {1, 2, 3};
    absl::c_for_each(array, [](int& x) { x += 1; });
    return array;
  }();
  static_assert(kArray == std::array{2, 3, 4});

备注

测试路径;示例验证 constexpr 算法与 lambda 在常量求值中的组合。

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