asio::detail::resolver_service::async_resolve 函数的实现
小陆zi 2019-03-27 06:57:37 // Asynchronously resolve a query to a list of entries.
template <typename Handler>
void async_resolve(implementation_type& impl,
const query_type& query, Handler& handler)
{
// Allocate and construct an operation to wrap the handler.
typedef resolve_op<Protocol, Handler> op;
typename op::ptr p = { asio::detail::addressof(handler),
asio_handler_alloc_helpers::allocate(
sizeof(op), handler), 0 };
p.p = new (p.v) op(impl, query, io_service_impl_, handler);
ASIO_HANDLER_CREATION((p.p, "resolver", &impl, "async_resolve"));
start_resolve_op(p.p);
p.v = p.p = 0;
}
我的问题:
1,typename op::ptr p,这的ptr是什么?
2,typename 作用是什么?是模板参数吗?
3,后面的表达式{asio::detail::addressof(handler),asio_handler_alloc_helpers::allocate(sizeof(op), handler), 0}是拉姆达表达式吗?