跳转至

ev-drogon-shared-ptr-binder-001

字段 值
项目 drogonframework/drogon
固定 commit 3aae769cc405
路径 lib/inc/drogon/HttpAppFramework.h
行段 L542-L545
特性 std::shared_ptr 与 std::weak_ptr
许可证 MIT
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-30
测试代码 否
发现方式 manual

用法

用 make_shared 创建处理器并让异步队列共享其生命周期

为什么典型

binder 需要活到事件循环执行,shared_ptr 被 lambda 捕获后引用计数延长对象寿命,无需手工管理。

摘录

        auto binder = std::make_shared<internal::HttpBinder<FUNCTION>>(
            std::forward<FUNCTION>(function));

        getLoop()->queueInLoop([binder]() { binder->createHandlerInstance(); });

备注

生产路径;make_shared 一次分配对象与控制块,lambda 按值捕获 shared_ptr 跨越同步调用边界。

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