跳转至

ev-drogon-integer-sequence-tasks-003

字段 值
项目 drogonframework/drogon
固定 commit 3aae769cc405
路径 lib/inc/drogon/utils/coroutine.h
行段 L887-L892
特性 std::integer_sequence
许可证 MIT
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-11-03
测试代码 否
发现方式 manual

用法

用 index_sequence_for 展开一组异步任务并逐个启动

为什么典型

并行等待多个任务时,每个任务需要一个编译期下标来访问 tuple 成员;index_sequence_for 从 Tasks... 推导下标包,展开成对 launch_task 的调用。

摘录

    template <size_t... Is>
    void await_suspend_impl(std::coroutine_handle<> handle,
                            std::index_sequence<Is...>)
    {
        ((launch_task<Is>(handle)), ...);
    }

备注

生产头文件;调用点传入 index_sequence_for,index_sequence 在这里承担编译期任务编号,而不是运行期循环变量。

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