...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A
constant buffer sequence
represents a set of memory
regions that may be used as input to an operation, such as the
send
operation of a socket.
A type
X
meets the
ConstBufferSequence
requirements if it
satisfies the requirements of
Destructible
(C++Std [destructible]) and
CopyConstructible
(C++Std [copyconstructible]), as well as the additional requirements listed
below.
In the table below,
x
denotes
a (possibly const) value of type
X
,
and
u
denotes an identifier.
Table 11. ConstBufferSequence requirements
expression |
return type |
assertion/note
|
---|---|---|
|
An iterator type meeting the requirements for bidirectional iterators
(C++Std [bidirectional.iterators]) whose value type is convertible
to
|
|
X u(x); |
post:
equal( boost::asio::buffer_sequence_begin(x), boost::asio::buffer_sequence_end(x), boost::asio::buffer_sequence_begin(u), boost::asio::buffer_sequence_end(u), [](const const_buffer& b1, const const_buffer& b2) { return b1.data() == b2.data() && b1.size() == b2.size(); }) |