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 在常量求值中的组合。