...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Invoke the handler in the owned object.
template< class... Args> void invoke( Args&&... args);
This function invokes the handler in the owned object with a forwarded
argument list. Before the invocation, the owned object is destroyed, satisfying
the deallocation-before-invocation Asio guarantee. All instances of handler_ptr
which refer to the same owned object will be reset, including this instance.
Care must be taken when the arguments are themselves stored in the owned object. Such arguments must first be moved to the stack or elsewhere, and then passed, or else undefined behavior will result.