Обработчик должен соответствовать требованиямCopyConstructibleтипов (C++ Std, 20.1.3).
В приведенной ниже таблицеXобозначает класс обработчика,hобозначает значениеX,pобозначает указатель на блок выделенной памяти типаvoid*,sобозначает размер блока выделенной памяти, аfобозначает объект функции, не принимающий аргументов.
Table 13. Handler requirements
выражение
Тип возврата
утверждение/примечание до/после условий
с помощьюбустера::asio::asio_handler_allocate;asio_handler_allocates,&h
void
Возвращает указатель на блок памяти размерас. Указатель должен удовлетворять тем же требованиям выравнивания, что и указатель, возвращенный::операторомновым().бросокна неудачу.
asio_handler_allocate()функция расположена с использованием аргумент-зависимого поиска. Функцияboost::asio::asio_handler_allocate()служит по умолчанию, если функция, предоставляемая пользователем, недоступна.
с использованиемповышения::::asio_handler_deallocate;asio_handler_deallocatep,s,&h
Освобождает блок памяти, связанный с указателемp, по меньшей мере размераs, который был ранее выделен с использованиемasio_handler_allocate[].
Функцияasio_handler_deallocateрасположена с использованием аргументозависимого поиска. Функцияboost::asio::asio_handler_deallocate[]служит по умолчанию, если функция, предоставляемая пользователем, не доступна.
с использованиемусиления::asio::asio_handler_invoke;asio_handler_invokef,&h;
Обусловливает, что объект функцииfвыполняется так, как если бы посредством вызоваf().
asio_handler_invoke()функция расположена с использованием зависящего от аргумента поиска. Функцияboost::asio::asio_handler_invoke[]служит по умолчанию, если функция, предоставляемая пользователем, не доступна.
Статья Handlers раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.