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 把两个依赖表达式收敛为可直接使用的类型别名。