跳转至

ev-drogon-fold-sql-update-003

字段 值
项目 drogonframework/drogon
固定 commit 3aae769cc405
路径 orm_lib/inc/drogon/orm/CoroMapper.h
行段 L514-L518
特性 折叠表达式
许可证 MIT
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-25
测试代码 否
发现方式 tree-sitter

用法

用逗号折叠把 tuple 中的列名依次追加到 SQL 更新语句

为什么典型

std::apply 负责展开 tuple,逗号折叠对每个列名执行有副作用的字符串拼接;相比递归展开,代码保持在一个表达式内,且拼接顺序与 tuple 元素顺序一致。

摘录

        std::apply(
            [&sql](auto &&...name) {
                ((sql += std::string(name) + " = $?,"), ...);
            },
            colNames);

备注

生产路径;折叠结束后由调用方去掉末尾多余逗号,说明副作用顺序是这段代码的语义前提。

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