...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A value h
of a cancellation
handler class should work correctly in the expression h(t)
,
where t
is a value of type
boost::asio::cancellation_type
.
A free function as a cancellation handler:
void cancellation_handler( boost::asio::cancellation_type type) { ... } slot.assign(cancellation_handler);
A cancellation handler function object:
struct cancellation_handler { ... void operator()( boost::asio::cancellation_type type) { ... } ... }; cancellation_handler& h = slot.assign(cancellation_handler{ ... });
A lambda as a cancellation handler:
auto& h = slot.assign( [](boost::asio::cancellation_type type) { ... });