我有一个关于 cpp-netlib 中用于实现 HTTP 服务器和处理程序请求的“技术”的问题。
该文档指出:
与 HTTP 客户端一样,随 cpp-netlib 提供的 HTTP 服务器可以通过标签机制进行扩展,并且是可嵌入的。basic_server 的模板类声明如下:
namespace boost { namespace network { namespace http {
template <class Tag, class RequestHandler> basic_server;
}}}
第二个模板参数用于指定请求处理程序类型。请求处理程序类型是一个函子类型,它应该重载函数调用运算符(RequestHandler::operator() 应该重载),它接受两个参数:第一个是对 const basic_request 的引用,第二个是对 basic_response 的引用实例。
因此,在我的代码中,我创建了一个处理程序(它声明了所需的函数)并使用它来构造一个选项对象:
boost::network::http::server<HttpRequestHandler>::options options(*handler);
然后使用选项和处理程序标签创建服务器(我认为这是正确的术语):
boost::network::http::server<HttpRequestHandler> server(options);
根据需要,我的处理程序类提供了函数调用运算符。这一切都很好 - 即在收到消息时调用处理程序。
我的问题是:库如何访问我的处理程序的完整类型,以便在未包含该函数时调用该函数?