Crow:http请求到Rule绑定的handler_的调用链-CSDN博客
介绍了handler_的调用顺序,其中的一个调用过程是Connection::->handle
void handle()
{...ctx_ = detail::context<Middlewares...>();req_.middleware_context = static_cast<void*>(&ctx_);req_.middleware_container = static_cast<void*>(middlewares_);req_.io_service = &adaptor_.get_io_service();detail::middleware_call_helper<detail::middleware_call_criteria_only_global,0, decltype(ctx_), decltype(*middlewares_)>({}, *middlewares_, req_, res, ctx_);...
}
ctx_被定义为detail::context<Middlewares...> ctx_;
也就是通过Middlewares,即初始化初始化Connection时指定的模板列表
然后将继承于所有Middlewares的context对象以及middlewares