Создайте новый обработчик, который автоматически отправляет обернутый обработчик на нить.
template<
typename Handler>
unspecified wrap(
Handler handler);
Эта функция используется для создания нового объекта функции обработчика, который при вызове автоматически передаст обернутый обработчик диспетчерской функции цепи.
- handler
-
Обработчик должен быть завернут. Прядь сделает копию объекта обработчика по мере необходимости. Функциональная подпись обработчика должна быть:
void handler(A1 a1, ... An an);
Объект функции, который при вызове передает завернутый обработчик диспетчерской функции нити. Задан объект функции с подписью:
R f(A1 a1, ... An an);
Если этот объект функции передается в функцию обертывания так:
strand.wrap(f);
Тогда возвращаемое значение является объектом функции с подписью
void g(A1 a1, ... An an);
который при вызове выполняет код, эквивалентный:
strand.dispatch(boost::bind(f, a1, ... an));