При использовании boost::asio 1.66 я прочитал в документации, что boost::asio::io_context::post устарел для boost::asio::post, то же самое для boost::asio::io_context::dispatch. Потому что прежде чем они будут использовать функции-члены io_context раньше, и, конечно же, обработчик должен быть выполнен в контексте некоторого io_context т.е. исполнителя, мой вопрос:
Как boost::asio::io_context::post простейшая перегрузка узнает, какой io_context т.е. исполнитель использовать?
В документации шаблона < typename CompletionToken> DEDUCED post(CompletionToken && token); указано, что
Получает связанный с обработчиком объект исполнителя ex, выполняя get_associated_executor(handler).
Но документация get_associated_executor мне тоже не разъясняет. Я предполагаю, что из-за вывода аргумента шаблона он может каким-то образом захватить его в текущем исполняемом обработчике, но я хочу убедиться, а также этого будет недостаточно, если я вызову post вне обработчика boost::asio.
Подробнее здесь: https://stackoverflow.com/questions/524 ... spatch-use