summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/asio/src/doc/requirements/MutableBufferSequence.qbk
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/asio/src/doc/requirements/MutableBufferSequence.qbk')
-rw-r--r--3rdparty/asio/src/doc/requirements/MutableBufferSequence.qbk56
1 files changed, 56 insertions, 0 deletions
diff --git a/3rdparty/asio/src/doc/requirements/MutableBufferSequence.qbk b/3rdparty/asio/src/doc/requirements/MutableBufferSequence.qbk
new file mode 100644
index 00000000000..7683a682ec6
--- /dev/null
+++ b/3rdparty/asio/src/doc/requirements/MutableBufferSequence.qbk
@@ -0,0 +1,56 @@
+[/
+ / Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ /
+ / Distributed under the Boost Software License, Version 1.0. (See accompanying
+ / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ /]
+
+[section:MutableBufferSequence Mutable buffer sequence requirements]
+
+A ['mutable buffer sequence] represents a set of memory regions that may be
+used to receive the output of an operation, such as the `receive` operation of
+a socket.
+
+A type `X` meets the `MutableBufferSequence` 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 MutableBufferSequence requirements
+ [[expression] [return type] [assertion/note\npre/post-condition]]
+ [
+ [`asio::buffer_sequence_begin(x)`\n
+ `asio::buffer_sequence_end(x)`]
+ [An iterator type meeting the requirements for bidirectional iterators
+ (C++Std \[bidirectional.iterators\]) whose value type is convertible to
+ `mutable_buffer`.]
+ []
+ ]
+ [
+ [``
+ X u(x);
+ ``]
+ []
+ [post:\n
+ ``
+ equal(
+ asio::buffer_sequence_begin(x),
+ asio::buffer_sequence_end(x),
+ asio::buffer_sequence_begin(u),
+ asio::buffer_sequence_end(u),
+ [](const typename X::value_type& v1,
+ const typename X::value_type& v2)
+ {
+ mutable_buffer b1(v1);
+ mutable_buffer b2(v2);
+ return b1.data() == b2.data()
+ && b1.size() == b2.size();
+ })
+ ``]
+ ]
+]
+
+[endsect]