跳转至

ev-drogon-decltype-await-result-003

字段 值
项目 drogonframework/drogon
固定 commit 3aae769cc405
路径 lib/inc/drogon/utils/coroutine.h
行段 L64-L69
特性 auto 与 decltype
许可证 MIT
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-27
测试代码 否
发现方式 manual

用法

用 decltype 查询 awaiter 的 await_resume 返回类型

为什么典型

协程结果类型无法直接命名,decltype 在编译期从表达式推导出准确类型。

摘录

template <typename T>
struct await_result
{
    using awaiter_t = decltype(internal::getAwaiter(std::declval<T>()));
    using type = decltype(std::declval<awaiter_t>().await_resume());
};

备注

生产路径;await_result 把两个依赖表达式收敛为可直接使用的类型别名。

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