While using boost::asio 1.66 I read in the documentation that boost::asio::io_context::post
is deprecated for boost::asio::post
, same for boost::asio::io_context::dispatch
. Because before they where member functions of the io_context
before, and of course the handler needs to be executed in the context of some io_context
i.e. executor
my question is:
How does boost::asio::io_context::post simplest overload know which io_context
i.e. executor
to use?
The documentation of template< typename CompletionToken> DEDUCED post(CompletionToken && token);
states that
Obtains the handler's associated executor object ex by performing get_associated_executor(handler).
But the documentation of get_associated_executor
does not make it clear to me either. My guess is due to the Template argument deduction it can grab it somehow in the currently executed handler, but I want to make sure and also, this wouldn't suffice if I call post
outside of a boost::asio handler.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…