Обслуживание объекта ввода/вывода должно соответствовать требованиям для услуги, а также требованиям, перечисленным ниже.
В приведенной ниже таблице<X>обозначает класс обслуживания объектов ввода/вывода,<a>и<ao>обозначают значения типа<X>,<b>и<c>обозначают значения типа<X::implementation_type>, а<u>обозначает идентификатор.
Table 17. IoObjectService requirements
выражение
Тип возврата
утверждение/примечание до/после условия
<X::implementation_type>
<X::implementation_typeu;>
примечание:<X::implementation_type>имеет публичный деструктор по умолчанию.
<
a.construct(b);
>
<
a.destroy(b);
>
note: destroy()
will only be called on a value that has previously been initialised
with construct() or move_construct().
a.move_construct(b,c);
примечание: требуется только для объектов ввода/вывода, поддерживающих подвижность.
<
a.move_assign(b,ao,c);
>
примечание: требуется только для объектов ввода/вывода, поддерживающих подвижность.
Статья I/O object service requirements раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.