A value h
of a cancellation handler class should work correctly
in the expression h(t)
, where t
is a value of type
asio::cancellation_type
.
A free function as a cancellation handler:
void cancellation_handler( asio::cancellation_type type) { ... } slot.assign(cancellation_handler);
A cancellation handler function object:
struct cancellation_handler { ... void operator()( asio::cancellation_type type) { ... } ... }; cancellation_handler& h = slot.assign(cancellation_handler{ ... });
A lambda as a cancellation handler:
auto& h = slot.assign( [](asio::cancellation_type type) { ... });